<SEC-DOCUMENT>0001410578-25-000279.txt : 20250306
<SEC-HEADER>0001410578-25-000279.hdr.sgml : 20250306
<ACCEPTANCE-DATETIME>20250305182126
ACCESSION NUMBER:		0001410578-25-000279
CONFORMED SUBMISSION TYPE:	6-K
PUBLIC DOCUMENT COUNT:		129
CONFORMED PERIOD OF REPORT:	20250131
FILED AS OF DATE:		20250306
DATE AS OF CHANGE:		20250305

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			DESCARTES SYSTEMS GROUP INC
		CENTRAL INDEX KEY:			0001050140
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-PREPACKAGED SOFTWARE [7372]
		ORGANIZATION NAME:           	06 Technology
		IRS NUMBER:				000000000
		STATE OF INCORPORATION:			A6
		FISCAL YEAR END:			0131

	FILING VALUES:
		FORM TYPE:		6-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-29970
		FILM NUMBER:		25712856

	BUSINESS ADDRESS:	
		STREET 1:		120 RANDALL ST
		CITY:			WATERLOO
		STATE:			A6
		ZIP:			N2V 1C6
		BUSINESS PHONE:		519-746-8110

	MAIL ADDRESS:	
		STREET 1:		120 RANDALL DRIVE
		CITY:			WATERLOO, ONTARIO, CANADA
		STATE:			XX
		ZIP:			N2V 1C6
</SEC-HEADER>
<DOCUMENT>
<TYPE>6-K
<SEQUENCE>1
<FILENAME>dsgx-20250131x6k.htm
<DESCRIPTION>6-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 10.9.0.3 -->
<!-- Based on: iXBRL 1.1 -->
<!-- Created on: 3/5/2025 10:04:30 PM -->
<!-- iXBRL Library version: 1.0.9062.16423 -->
<!-- iXBRL Service Job ID: fc8992d9-6385-4cbe-a7f1-c70ba103cb68 -->
<html xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns="http://www.w3.org/1999/xhtml" xmlns:dsgx="http://www.descartes.com/20250131" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:srt="http://fasb.org/srt/2023" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:xbrldi="http://xbrl.org/2006/xbrldi"><head><meta http-equiv="content-type" content="text/html"/><title>DESCARTES SYSTEMS GROUP INC_2025-01-31</title></head><body><div style="margin-top:30pt;"></div><div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:EntityCentralIndexKey" id="Tc_X-7CoexA70ew-d1AUzmIgw_3_1">0001050140</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:CurrentFiscalYearEndDate" id="Tc_QKpoNPNcLkmE3vUe18sFqQ_4_1">--01-31</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:DocumentFiscalYearFocus" id="Tc_kLLraMKeTUmby3NphPlNJA_5_1">2025</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:DocumentFiscalPeriodFocus" id="Tc_qM-IHqNzikmatd8tYiEXlg_6_1">FY</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:AmendmentFlag" id="Tc_kaNZNRXNMEGHwhqf5ls_FA_7_1">false</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:DocumentPeriodEndDate" id="Tc_hqpgh7r780yTvOrSp5G2qw_8_1">2025-01-31</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:href="dsgx-20250131.xsd" xlink:type="simple"/></ix:references><ix:resources><xbrli:context id="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uUzTcmdSIkSTNn7W5gkVVA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_quv2HM7Wnk-vrR8nBH9zyA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FqO6D9icB0-m9TaBJJLk6Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Xo5nsPjbxEarpd47qSr5eg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_deaPScdFcEq6NKWslvdpzQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_WJ7hDHiTiEGhyylWCtoSgA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ZZoJDsZMCkughNkJdOYgQw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hfxuVkTEO0CpSC-CLc9ocg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ONNSmfAFLU2r9QyLtDKQdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_sfuZ6nhlmUeDaCYsqZmXOA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3Ng61soA6EiEjE14GfjGdQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_2yDO-83P6UGboHA1yVxB9g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_LPYOpY2mD0KueCOKxSreig"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jJZe_wORSkuhP9G8pScoKw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_jVXJQtjgTkyBxSFQOXTt0w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XMziVGkzgkG6rAiDzbV1mg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_pdvd9opf0EmTA4vY3rwJwA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_p-0qPeTS6UKlrC3J9r9OXw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_eqyDr6O210uUltvKo6nSwA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_AkJWHYCt-UyY9UTyv4-EIw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember__hYjTdk5LU2ktRZvFML-yQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_lXDJIomuPEOC3V0RhuAS9A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0etVXC59d0yJEabB2TBpIA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Hf31aahcWEOKuTWcdroOmA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Am5CE2jzw0m9ZRTQ1EbpqA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20250131_eO2sMHH-bE2AK25_xCq_Bg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-31</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_ServiceMember_TQjDDrEHpES7HgWwuIv6fg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_LicenseMember_pl2slgTqPEScSNB3qniZ0A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_29vGExNb-0Gh_6J9FwEffA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_cXgD9j1dYkCWJaVliFBFvg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6vyhTEO2dEuYoOglC9AKmA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_US_nxGVLzjITEuUmjVwxFftrw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_CA_-vHgzPWnkk-KRqWMeD-Bxg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_ServiceMember_PPFpMMaUVUOeYascn3YgvQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_LicenseMember_CdETb7LgaU6RNK3pdOKNlA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_8JOnCORSmkWFWsneZm90gQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PpH20IfC6UaKAtZfvmsVEg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_nkQ8q5WqQ0OUccEnkkdAaQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_US_H0t6W-dJt0Gkyzt7yhaFyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_CA_4f0jfXCPPkmLxV9dPq_UEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_ServiceMember_W6-OgRB8eUyg3o2ollLxKQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_LicenseMember_4vkmpzQ0IE2cNYszp9t6pg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_us-gaap_EMEAMember_fCee2E7iGEGcN50kEsY-aw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_srt_AsiaPacificMember_ZSDkfy0DGkK4vooiBjK3bA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_kRe4BfuYO0GeGsb9iXraNA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_US_GvGGbDDi8kqORlR0hgi5-w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_CA_S4wbI54qV0Ks31bg1nfgYw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_JtoQqghEdUOfZGuRuBrLAA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_I7EM2AKm_U-5rl0tPVWxow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7kb5wGJr-U2vLu3NNbphCg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_8ySeS4DWS0qjpKMDGIQ7TQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_16NvNRUppkGMDdkLb8VATA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_AIPkZ424DU6umDEWWArldg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7gQhquhRE0-RMmApKKBsRQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7bYn20uP7U2met2vX_szEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_GFgmd6xaLkqwQ7AC8qXndg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_VNE4i8i7ukuSJliA6WaUbg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_atjDyHjMlU-gOd3hUW_VpA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_Alknur5FEUiHFDnMNDMxaA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_qyasNacZ8UWxXVwLFrq5pw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_jqKw8kSw806UqTe-2_GuVw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_6_10_2024_To_6_10_2024_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_NmAG3hWJgEeJ0pSB-Rl8Ug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-06-10</xbrli:startDate><xbrli:endDate>2024-06-10</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_3_28_2024_To_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_qO0C59RyfUGntyxTK08Arw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-03-28</xbrli:startDate><xbrli:endDate>2024-03-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_20_2023_To_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_o7F5xmIUe0ePgrT_fYZavg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-20</xbrli:startDate><xbrli:endDate>2023-04-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_gR--3dPXjUqawPWHxblafw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-04-21</xbrli:startDate><xbrli:endDate>2022-04-21</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_jsfYlX7eF0GpmFoQQelk0Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:FacilityClosingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_wmj07YaPfEmX4sPnv_udag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-19</xbrli:startDate><xbrli:endDate>2024-04-19</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_qpSR7Sw6OUOd5UbcZ5Quhg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tsD-66TsZ0iu5mcDjH7frQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_7punDIlfu02bV8Ry--oT0A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_l745JJ4S3Eu-LLoh2TtJXw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:IndefiniteYearMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member__5l7fqnKr06DiZap5gGcig"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2030Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_7AMjFWKDF0KMgk17-A0t2w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2029Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_0Df-t5-gekqr2k71X68bpg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2028Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_UNlyxZM3hk6ZRUuIXDvwvA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2027Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_3j4e5-jopUCuwOT7r9w5xQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_0irSxaP4W0SIphSD7wckcg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_P_VnrN2A-EmTzT6Tr3ThKA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2030Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_9pnCE8-9X0uPmySAJcQiNQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2029Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_1xVhbZdd-EuD2JQisUWomQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2028Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_WSVHR6MASU2bPA41CrYHCA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:IndefiniteYearMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_mFekHua1bkKwcC7YUJkJuw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_zaSzvHyXY0WrY-J15_xwuw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_1gxzHRDtdU6rNmfJ39KoFw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_ik1qFM2Dl0-3WPTCDAQ6mA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_6rjg4_8y80q_DLW7EVJv_g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2030Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_MK1pRYY_5keAuo7akd8z9A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2029Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_tBzmlWb46kiWfyP_tsdHjg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2028Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_sr0Fc9u8EU24M6v4sHahyw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2027Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_cF3lCKZeh0uLtkgqRwexGA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_vR-PnRx9tUuPeLesgK-KnQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:IndefiniteYearMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_AGeTVpKfGE2AQyrdfYv87Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_roul4JoGLUaLPxzX8GLlKg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_bQtUUlolAU-5Xau3H5f0rg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_US_lwCTJQu9yECv4HwkdAswOw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_CA_BRScwaLfe0iYy_ZIBdthfw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_-wEBXuXve0aCbivTb5ScQA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_RJd80nMB2EemQBVx2w-bdQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_US_CGnWX7zQzkCUwngHM5p4HQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_CA_ILjGiaSF3kCi_5BYAjhR-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_-Lmbiku6u0GkDADSUfLlPg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_eFr7WsFJQEOi_8z-9mvrFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_4daqMAqhVUqvg0wDpZoNYw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_04BD1YAFmEeWdI8JxjptTw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_tC7kCZf7I06n773bWStW2A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_q9BnnaeJ3keyafk0FLQcFw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_WL7pLbCDN0Ckb1zgzZgT2g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_RuVFsfy9rUWbrdsCqHsnVQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tZaBkCg-_E2nfi42hj9Mmw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_fyWpwPAk-EmoyxE6tbBLlQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Pb0Gt03z7k2QcrZNIpMFFw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_GlCnS2eQ70-THFgNQtM-2g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sHvFJqqXPkW4qWunmHxh-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uGIbCZBY1UqAq72UYM0Gew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember__dH2z9o4o0qjaumuWtExHg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NDBGoKmY2kKbkiGg_0vp7w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LcnFxLiVzUq0H6h9uAQ2YA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QZK_mOfVYkOCMsFFa28N8w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_f5tfJp8bwUmRi7WcQjlDCw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_dp8aGXVQEEKS4bMfY0OyLQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_BeVghKtBX0eDM6R0nh-L9w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_cbdskV2m4UOhjP9Aq_0ovw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_jKEXqqdgBE6xB_nreRZepw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_E1w6yWf9N0Ovb3NRfl-jxg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_WMaY6KjdWE-84se4ZjMerQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_48w17frq4EqulxAc4SrpFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_pOL8xJrfKk674SqBN-Lbyw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_-ZGdd0zQYk-OMCj5VH7s_Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_-KLFiDtj70OXO11uoPl3PQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_9NHSdIjPZ0aePdeZGMz4og"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_wrBQNVVzqEKlcU269TIqJQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_V3Aj27J_PkmCeX-LFcezAg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_TmoItXZpVkm1U7gesmtM-A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_4Zxf9mU-iUaqJqOl_UCYDw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NCNRFy-nNEip4dbUH0Qbyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_g4CApCNFVE6TfIIl8jGYFA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_VWsK_JPkokicMxUL9BIFqw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_FX1znndwu0eKx-NYNlEz9A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_WiXfedSYykGt5cV4iApCxA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SsZT58bRBk6BzNnQmkJmyA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IzQBwPmnHU6N_p_6XWnt-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_oRagQpsYDkOTg7Mf_HaBUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LL6k8xs0iUOY5Myd1LnLHw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_eFKjrCbcpkaWku185-sRjA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_fqKkKZezdUqFRmpGKzzAcw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XAgRkcyW0ku4ndq0OvJQRQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_BFhMvP_QH0ittuKAN28dFA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_5MSFaGBI9UGu5fXTYBD4nA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_1ur_H23L706TLsvzHVdEsg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UFano2ye40CbdnSgLQufyA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_MSEXOfvBHEO1MbnoTetL_g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0Kq6hqNILUmlfqshIwUHMQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_aRdPuNoY_06Z6fS24w-e4A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_OrOo0RIN7kauNnvO1P4SOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_MdF6hTdL3EecK7y62_QGfw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WxgGCSJgX0aN52PyEaAtWw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NjsJk_WEiUqEBzTApzglAg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_22pwhlNQFU660crmwXHk8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_FlB4_ErBXUKA1rZyTh8w6A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_xyzUOHeSHUyQtEli-A8I0Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fAekMMIVdkax2baAgeBTsw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_QnoBJTXEjUiI-WvDuNK09Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_jL5OdN2Qx0uhN7dNTDwzTw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_pC2FGINSs0CdHx3zVD1aAA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JtJwhrRn5kGCxdbhc5gP-A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Y4Vr9kb6hkOULI_kBiL4hw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_RllDwoMvQE6PCVKNw1VOqw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_63poA6l9G0ad9z4BCgD5HQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8ocP7kndg0u3Aie1GIadaA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_H_wy3UKvwUOrW3JWXZwJ8g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kGPsY3Cz706PbJT6vHzIMw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_3HI2fdXurUCIMe3KRuO2Zw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_KSsS8j-Tyk-gl6vx67nrzw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_jPSgcZEsR0OUVtGerst6xQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ulAK44TzGEuOX1UW0y7_wA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_djdDJIBL50umyaxlozC1Uw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kCn4xihjHkq1EEzRRRPyJA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_BiCxeZxsFkWsGJKDAtmIaw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_nodCvkIGeUeVfZ8ms5nNjg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember__72voAu_lEWs-vxpkQPcoA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lFeO-F4w00-Q6vKuPPDNdA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_9HVQwmHyT0iyzVKlE7mFlA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CU2Xwf7ShkKAK-OfRB6-cA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_wuvKoabWc0yCW4EQJ6bLvg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionGroundcloudMcpAndSellercloudMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">dsgx:BusinessCombinationAgreementsPerformanceBasedConsiderationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_Ik-ljJBmHEWPxs--p8xxBw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-17</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Fiscal2025AcquisitionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-10-11</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_NwssJ3aKYU64tE1PhpR_FA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-04-19</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_7JM72RJ0g0-3O0q3iKl4Vg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-02-14</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-05</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-06-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_mUyA6OhXH0izkqzqdHOlfw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-04-21</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-02-09</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_XlMeR2DDHU-DnDfvB6AZqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Lnj0zT4JWEy8CcnqFviQ5A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember__Wef7ZpiVEi7vc2dWtroQw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_x0JjZP9AUU6zOUBEXUdXlw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_UDQyiLl3d06ArwTWo4GMEQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_Utlj73tVJ0yplHkFoxjA3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_zmfpheEgwkuoppa1mziUzQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_mkdJJESXj0eX3bKjFFxG5Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_79uZOvhDnU-FGNnUvBr_PQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_4k1yOiu2Lk6QjVmPLanZUg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_dReCUT9GAUuaHpWiNoyI0g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_6LDD9oq9OUuESvdtMiZz0w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_MocVBqOuhEKNgD_BdDwPag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember__xmXzVVI1EmTxS0AS_jJOg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_0od1S6PnM0mj7T8qaoVr1A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_lxKsFqqyMEqPn7bdKxggpQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_IWngTEjIE0294u68Ko6Kiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_SxrvPTnIFkuuTD54OzmjKQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_mrABNMA4gk2eTijk8iNOdw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_19_KbqfP4U6aO7yGSqOyLQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nEtpcKGo3kKmavV9ctha6g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_0zoYH0kUQk2deGemzPoQwA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_uDviOrJ_yE-9Kusbtl-yCg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_FfPxRGaV8EC0xNasXANn7g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_NP6RexODBUedcTTIbJ6Qlg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_22PpKr8xZEO7YA5NLeoKyw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_Go4nTqHXPUKw4j9ZmcdgOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_tLIxzA-2w0e-6-v3HuiaUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_7_15_2024_To_7_15_2024_us-gaap_SubsidiarySaleOfStockAxis_dsgx_BaseShelfProspectus2024Member_5Z8ZCcWMOUO76bMv09nQEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:BaseShelfProspectus2024Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-15</xbrli:startDate><xbrli:endDate>2024-07-15</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_mEkKpjUzJ0-wwdVRxvQgEg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:ShelfProspectusMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-15</xbrli:startDate><xbrli:endDate>2022-07-15</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_S44TR7fVgkSPz63FEkoxJg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_ZMC6sYmwKUWILe6TNx0cvA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_N--uJkt4tU2vFwCD3jya-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">dsgx:SingleReportableSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">dsgx:SingleReportableSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">dsgx:SingleReportableSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_oaGEQuOqdkSKMjGg5vwuPA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_ucwLD6SFtUC9AbAwH4MvmQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_jtU7415FjECejIXz3gks4Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_NIQBOw-JzkawB0TaLNxtyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_DS62IYIGQkSDYdw6UNHjEA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_10_11_2024_To_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_HO5D11lrBkmYPtX-53M1_A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-11</xbrli:startDate><xbrli:endDate>2024-10-11</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_9_17_2024_To_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_tvYOfTRE_Ue2DvczmmkSfA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-09-17</xbrli:startDate><xbrli:endDate>2024-09-17</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_qFZ8AKGr10C7QT1d9FDHQA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">dsgx:BusinessCombinationAgreementsPerformanceBasedConsiderationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_6vkXrDOz9UGLGWWNWYa_sw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-14</xbrli:startDate><xbrli:endDate>2023-02-14</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_5_2023_To_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_KsaVe4hx50-16OKx7jq0Uw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-05</xbrli:startDate><xbrli:endDate>2023-01-05</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_ejOpE2bBH0yIbjoqBg6D5A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-06-03</xbrli:startDate><xbrli:endDate>2022-06-03</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JD05O5TIF0WBwBI7YRZTow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-09</xbrli:startDate><xbrli:endDate>2022-02-09</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_0s5zchjXzkSUBO5BeIMepQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-01</xbrli:startDate><xbrli:endDate>2025-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-02-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2023-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ"><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="Unit_Standard_segment_2f_V29RRlkaFYgf_PufsGw"><xbrli:measure>dsgx:segment</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_EUR_4XGw_XmhwUmxX-nBeOzlPg"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_GBP_P5WfE-ByI02morAY7qIWwg"><xbrli:measure>iso4217:GBP</xbrli:measure></xbrli:unit></ix:resources></ix:header></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1.0pt solid #000000;border-top:3.0pt solid #000000;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p><a id="_2665f369_7386_44c7_8363_eca2600f070d"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:18pt;font-weight:bold;">UNITED STATES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:18pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Washington, D.C. 20549</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:18pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">FORM </b><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:DocumentType" id="Narr_ZlXxysou3UKiVObFRdnzxQ"><b style="font-weight:bold;">6-K</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">REPORT OF FOREIGN PRIVATE ISSUER</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">PURSUANT TO RULE 13a-16 OR 15d-16 UNDER</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">THE SECURITIES EXCHANGE ACT OF 1934</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">For the month of March 2025</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Commission File Number: 000-29970</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:18pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:EntityRegistrantName" id="Narr_akhWNSJwvkix2Fi-icks5g"><b style="font-weight:bold;">DESCARTES SYSTEMS GROUP INC</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">(Translation of registrant&#8217;s name into English)</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">120 Randall Drive</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Waterloo, Ontario</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Canada N2V 1C6</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">(Address of principal executive office)</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Indicate by check mark whether the registrant files or will file annual reports under cover of Form 20-F or Form 40-F.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Form 20-F [ ]<span style="font-family:'Cambria';">&#160;</span>Form 40-F [x]</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:3.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p></div></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_6b1f2884_89f5_4048_a5da_79a4089d76f6"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:36pt;margin:0pt;">The attached Annual Report to Shareholders for the year ended January 31, 2025 is furnished herewith as Exhibit 99.1.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:36pt;margin:0pt;">The attached Press Release issued March 5, 2025 is furnished herewith as Exhibit 99.2.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">SIGNATURES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:36pt;margin:0pt;">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-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr><td colspan="2" style="vertical-align:bottom;width:40.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:40.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:40.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">(Registrant)</p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:40.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">By:</p></td><td style="vertical-align:bottom;width:35.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Peter V. Nguyen</p></td><td style="vertical-align:bottom;width:59.15%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Name:</p></td><td style="vertical-align:bottom;width:35.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Peter V. Nguyen</p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Title:</p></td><td style="vertical-align:bottom;width:35.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">General Counsel</p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:40.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:40.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Date:&#160; March 5, 2025</p></td><td style="vertical-align:bottom;width:59.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_82970a32_5943_498c_9cb4_f43d0d788f91"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">EXHIBITS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr><td style="vertical-align:bottom;width:17.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Exhibit No.</b></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;width:80.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Description</b></p></td></tr><tr><td style="vertical-align:bottom;width:17.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:80.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:17.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">99.1</p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:80.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20250131xex99d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Annual Report to Shareholders for the year ended January 31, 2025</span></a></p></td></tr><tr><td style="vertical-align:bottom;width:17.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">99.2</p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#0a2f41;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:80.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20250131xex99d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Press Release Issued March 5, 2025</span></a></p></td></tr><tr><td style="vertical-align:bottom;width:17.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">101</p></td><td style="vertical-align:top;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:80.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interactive Data File (formatted in Inline XBRL)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div></div>
<div style="background-color:#000000;clear:both;height:2pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:avoid;width:88.24%;border:0;"></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.1
<SEQUENCE>2
<FILENAME>dsgx-20250131xex99d1.htm
<DESCRIPTION>EX-99.1
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 10.9.0.3 -->
<!-- Based on: iXBRL 1.1 -->
<!-- Created on: 3/5/2025 10:03:45 PM -->
<!-- iXBRL Library version: 1.0.9062.16423 -->
<!-- iXBRL Service Job ID: fc8992d9-6385-4cbe-a7f1-c70ba103cb68 -->
<html xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:dsgx="http://www.descartes.com/20250131" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:srt="http://fasb.org/srt/2023" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:xbrldi="http://xbrl.org/2006/xbrldi"><head><meta content="text/html" http-equiv="content-type"/><title>DESCARTES SYSTEMS GROUP INC_2025-01-31</title></head><body><div style="margin-top:30pt;"></div><div style="display:none;"><ix:header><ix:hidden><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" xs:nil="true" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" name="us-gaap:CommitmentsAndContingencies" id="Hidden_Ym-OStPEIkOcDpKoRKCysQ"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" xs:nil="true" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" name="us-gaap:CommitmentsAndContingencies" id="Hidden_DVie8c-nIEaPFs5EIEf7Ow"></ix:nonFraction><ix:nonNumeric contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" name="us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration" id="Hidden_Zddgu-Dml0yC28AQK7uRVw">http://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrent</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" name="us-gaap:CommonStockSharesAuthorizedUnlimited" id="Hidden_9cHY6ZmmzE6jnCbahdKCPg">Unlimited</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:CommonStockSharesAuthorizedUnlimited" id="Hidden_yrDfuhB3y0eYhFQoItf2gQ">Unlimited</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw" name="us-gaap:PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" id="Hidden_Fci6PjFBwku2_gnZn3HKtA">http://fasb.org/us-gaap/2023#UsefulLifeShorterOfTermOfLeaseOrAssetUtilityMember</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_oaGEQuOqdkSKMjGg5vwuPA" name="dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" id="Hidden_-YLk83amU0eYhwI_cdxmTg">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Hf31aahcWEOKuTWcdroOmA" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Hidden_p0K7MBptOk-gqxxjqsFSWA">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_oaGEQuOqdkSKMjGg5vwuPA" name="dsgx:CashSettledRestrictedShareUnitsVestingPeriod" id="Hidden_xODkettpHUKPFsEYeyXoCQ">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Pb0Gt03z7k2QcrZNIpMFFw" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Hidden_N7pYUxv4gkKjaFXQZFbtjA">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_ejOpE2bBH0yIbjoqBg6D5A" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Hidden_wLzvF18aMkSoqfV2k_2U7A">P2Y</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_nodCvkIGeUeVfZ8ms5nNjg" decimals="2" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" id="Hidden_wUviR6C3fEqFUQmmSc77-w">0.10</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lFeO-F4w00-Q6vKuPPDNdA" decimals="2" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" id="Hidden_mtJIG6LVE0yH0J6Nr7Bteg">0.13</ix:nonFraction><ix:nonNumeric contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" name="us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration" id="Hidden_-c-HgOnF9kGzA58VCMLhTg">http://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrent</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dei:AmendmentFlag" id="Narr_QoHrWDQVFEeyN1PTuN2HGg">false</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="dsgx-20250131.xsd"/></ix:references><ix:resources></ix:resources></ix:header></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:73.54pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_ec727e4a_1e0c_4c9f_a5df_c93df3763963"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exhibit 99.1</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';"><img src="dsgx-20250131xex99d1001.jpg" alt="Graphic" style="display:inline-block;height:64.35pt;left:0%;padding-bottom:0.15pt;position:relative;top:0pt;width:321pt;"/></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d1002.jpg" alt="Graphic" style="display:inline-block;height:73.44pt;left:0%;padding-bottom:0.1pt;position:relative;top:0pt;width:540.72pt;"/><b style="color:#ffffff;font-family:'Verdana';font-size:16pt;font-variant:small-caps;font-weight:bold;white-space:pre-wrap;">                                           </b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#ffffff;font-family:'Verdana';font-size:16pt;font-variant:small-caps;font-weight:bold;">The Descartes Systems Group Inc.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#ffffff;font-family:'Verdana';font-variant:small-caps;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-size:11pt;font-variant:small-caps;font-weight:bold;">US GAAP Financial Results for the 2025 Fiscal Year</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-variant:small-caps;font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-variant:small-caps;font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_a4508d9a_a8d7_49b9_9656_b8554adcedda"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="TOC"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">TABLE OF CONTENTS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';" href="#MANAGEMENTSDISCUSSIONANDANALYSISOFFINANC"><span style="font-style:normal;font-weight:normal;">MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">3</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#OVERVIEW_153434"><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">VERVIEW</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">5</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONSOLIDATEDOPERATIONS_544865"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATIONS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">9</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#QUARTERLYOPERATINGRESULTS_456981"><span style="font-style:normal;font-weight:normal;">Q</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UARTERLY </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATING </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESULTS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">16</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#LIQUIDITYANDCAPITALRESOURCES_33729"><span style="font-style:normal;font-weight:normal;">L</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">IQUIDITY AND </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">APITAL </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESOURCES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">17</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#COMMITMENTSCONTINGENCIESANDGUARANTEES_46"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OMMITMENTS, </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONTINGENCIES AND </span><span style="font-style:normal;font-weight:normal;">G</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UARANTEES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">20</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#OUTSTANDINGSHAREDATA_885645"><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UTSTANDING </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HARE </span><span style="font-style:normal;font-weight:normal;">D</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ATA</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">22</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#APPLICATIONOFCRITICALACCOUNTINGPOLICIESA"><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PPLICATION OF </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">RITICAL </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">CCOUNTING </span><span style="font-style:normal;font-weight:normal;">P</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OLICIES AND </span><span style="font-style:normal;font-weight:normal;">E</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">STIMATES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">22</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CHANGEININITIALADOPTIONOFACCOUNTINGPOLIC"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HANGE </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">N / </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NITIAL </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">DOPTION OF </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">CCOUNTING </span><span style="font-style:normal;font-weight:normal;">P</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OLICIES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">25</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONTROLSANDPROCEDURES_964546"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONTROLS AND </span><span style="font-style:normal;font-weight:normal;">P</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ROCEDURES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">26</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#TRENDSBUSINESSOUTLOOK_231983"><span style="font-style:normal;font-weight:normal;">T</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">RENDS / </span><span style="font-style:normal;font-weight:normal;">B</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">USINESS </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UTLOOK</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">26</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CERTAINFACTORSTHATMAYAFFECTFUTURERESULTS"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ERTAIN </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ACTORS </span><span style="font-style:normal;font-weight:normal;">T</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HAT </span><span style="font-style:normal;font-weight:normal;">M</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">AY </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">FFECT </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UTURE </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESULTS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">30</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#ManagementsReportonFinancialStatements_6"><span style="font-style:normal;font-weight:normal;">M</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ANAGEMENT&#8217;S </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">EPORT </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">N </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">INANCIAL </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ND </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NTERNAL </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONTROL </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">VER </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">INANCIAL </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">EPORTING</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">44</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDBALANCESHEETS_69858"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">B</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ALANCE </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HEETS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">50</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATI"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATIONS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">51</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFCOMPREH"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OMPREHENSIVE </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NCOME</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">52</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFSHAREHO"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HAREHOLDERS&#8217; </span><span style="font-style:normal;font-weight:normal;">E</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">QUITY</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">53</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLO"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ASH </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">LOWS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">54</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#NOTESTOCONDENSEDCONSOLIDATEDFINANCIALSTA"><span style="font-style:normal;font-weight:normal;">N</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OTES&#160;TO </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">INANCIAL </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">55</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CORPORATEINFORMATION_285379"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ORPORATE </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NFORMATION</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">91</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_97b0803b_fd55_458b_bce7_6cb47a7f09f5"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="MANAGEMENTSDISCUSSIONANDANALYSISOFFINANC"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations (&#8220;MD&amp;A&#8221;) contains references to Descartes using the words &#8220;we,&#8221; &#8220;us,&#8221; &#8220;our&#8221; and similar words and the reader is referred to using the words &#8220;you,&#8221; &#8220;your&#8221; and similar words.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">This MD&amp;A also refers to our fiscal years. Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our fiscal year that we are reporting on in this MD&amp;A, which ended on January 31, 2025, is referred to as the &#8220;current fiscal year,&#8221; &#8220;fiscal 2025,&#8221; &#8220;2025&#8221; or using similar words. Our previous fiscal year, which ended on January 31, 2024, is referred to as the &#8220;previous fiscal year,&#8221; &#8220;fiscal 2024,&#8221; &#8220;2024&#8221; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, 2026 refers to the annual period ending January 31, 2026 and the &#8220;fourth quarter of 2026&#8221; refers to the quarter ending January 31, 2026.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">This MD&amp;A, which is prepared as of March 5, 2025, covers our year ended January 31, 2025, as compared to years ended January 31, 2024 and 2023. You should read the MD&amp;A in conjunction with our audited consolidated financial statements for 2025 that appear elsewhere in this Annual Report to Shareholders.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We prepare and file our consolidated financial statements and MD&amp;A in United States (&#8220;US&#8221;) dollars and in accordance with US generally accepted accounting principles (&#8220;GAAP&#8221;). All dollar amounts we use in this MD&amp;A are in US currency, unless we indicate otherwise.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have prepared the MD&amp;A with reference to the Form 51-102F1 MD&amp;A disclosure requirements established under National Instrument 51-102 &#8220;Continuous Disclosure Obligations&#8221; (&#8220;NI 51-102&#8221;) of the Canadian Securities Administrators.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Additional information about us, including copies of our continuous disclosure materials such as our annual information form, is available on our website at http://www.descartes.com, through the EDGAR website at http://www.sec.gov or through the SEDAR+ website at http://www.sedarplus.com/.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Certain statements made in this Quarterly Report to Shareholders, constitute forward-looking information for the purposes of applicable securities laws (&#8220;forward-looking statements&#8221;), including, but not limited to: statements in the &#8220;Trends / Business Outlook&#8221; section and statements regarding our expectations concerning future revenues and earnings, including potential variances from period to period; our assessment of the potential impact of geopolitical events, such as the ongoing conflict between Russia and Ukraine (the &#8220;Russia-Ukraine Conflict&#8221;), and between Israel and Hamas (&#8220;Israel-Hamas Conflict&#8221;), or other potentially catastrophic events; results of operations and financial condition; our expectations regarding the cyclical nature of our business; mix of revenues and potential variances from period to period; our plans to focus on generating services revenues yet to continue to allow customers to elect to license technology in lieu of subscribing to services; our expectations on losses of revenues and customers; our baseline calibration; our ability to keep our operating expenses at a level below our baseline revenues; our future business plans and business planning process; allocation of purchase price for completed acquisitions; our expectations regarding future restructuring charges and cost-reduction activities; expenses, including amortization of intangible assets and stock-based compensation; goodwill impairment tests and the possibility of future impairment adjustments; capital expenditures; acquisition-related costs, including the potential for further performance-based contingent consideration; our liability with respect to various claims and suits arising in the ordinary course; any commitments referred to in the &#8220;Commitments, Contingencies and Guarantees&#8221; section of this MD&amp;A; our intention to actively explore future business combinations and other strategic transactions; our liability under indemnification obligations; our reinvestment of earnings of subsidiaries back into such subsidiaries; our dividend policy; the sufficiency of capital to meet working capital, capital expenditure, debt repayment requirements and our anticipated growth strategy; our ability to raise capital; our adoption of certain accounting standards; and other matters related to the foregoing. When used in this document, the words &#8220;believe,&#8221; &#8220;plan,&#8221; &#8220;expect,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;continue,&#8221; &#8220;may,&#8221; &#8220;will,&#8221; &#8220;should&#8221; or the negative of </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">3</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">such terms and similar expressions are intended to identify forward-looking statements. These forward-looking statements are subject to risks and uncertainties and are based on assumptions that may cause future results to differ materially from those expected. The material assumptions made in making these forward-looking statements include the following: </span><span style="font-family:'Verdana';font-size:9.5pt;">Descartes&#8217; ability to successfully identify and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; </span><span style="font-family:'Verdana';font-size:9.5pt;">the impact of network failures, information security breaches or other cyber-security threats; disruptions in the movement of freight and a decline in shipment volumes including as a result of the impact of current and future trade barriers, including tariffs, further protectionistic measures and reactive countermeasures, the ongoing conflict between Russia and Ukraine (the &#8220;Russia-Ukraine Conflict&#8221; ), and between Israel and Hamas (&#8220;Israel-Hamas Conflict&#8221;), or contagious illness outbreaks, a deterioration of general economic conditions or instability in the financial markets accompanied by a decrease in spending by our customers; </span><span style="font-family:'Verdana';font-size:9.5pt;">global shipment volumes continuing to increase at levels consistent with the average growth rates of the global economy; countries continuing to implement and enforce existing and additional customs and security regulations relating to the provision of electronic information for imports and exports; countries continuing to implement and enforce existing and additional trade restrictions and sanctioned party lists with respect to doing business with certain countries, organizations, entities and individuals; our continued operation of a secure and reliable business network; the continued availability of the data and content that is utilized in the delivery of services made available over our network; relative stability of currency exchange rates and interest rates; equity and debt markets continuing to provide us with access to capital; our ability to develop solutions that keep pace with the continuing changes in technology; and our continued compliance with third-party intellectual property rights. While management believes these assumptions to be reasonable under the circumstances, they may prove to be inaccurate. Such forward-looking statements also involve known and unknown risks, uncertainties and other factors that may cause our actual results, performance or achievements of, or developments in our business or industry, to differ materially from the anticipated results, performance or achievements or developments expressed or implied by such forward-looking statements.&#160;Such factors include, but are not limited to, the factors discussed under the heading &#8220;</span><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">Certain Factors That May Affect Future Results</b><span style="font-family:'Verdana';font-size:9.5pt;">&#8221; in this MD&amp;A and in other documents filed with the Securities and Exchange Commission, the Ontario Securities Commission and other securities regulatory authorities across Canada from time to time. If any of such risks actually occur, they could materially adversely affect our business, financial condition or results of operations. In that case, the trading price of our common shares could decline, perhaps materially. Readers are cautioned not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. Forward-looking statements are provided for the purpose of providing information about management&#8217;s current expectations and plans relating to the future. Readers are cautioned that such information may not be appropriate for other purposes. Except as required by applicable law, we do not undertake or accept any obligation or undertaking to release publicly any updates or revisions to any forward-looking statements to reflect any change in our expectations or any change in events, conditions, assumptions or circumstances on which any such statements are based</span><span style="font-family:'Verdana';font-size:10pt;">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">4</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><div style="white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><a id="_a99ba6ee_69bc_4515_9507_6cf4dc640c1e"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;border-bottom:1px solid #000000;margin:0pt 0pt 10pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><a id="OVERVIEW_153434"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OVERVIEW</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-top:1pt;border-top:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use technology and networks to simplify complex business processes. We are primarily focused on logistics and supply chain management business processes. Our solutions are predominantly cloud-based and are focused on improving the productivity, security and sustainability of logistics-intensive businesses. Customers use our modular, software-as-a-service (&#8220;SaaS&#8221;) and data solutions to route, track and help improve the safety, performance and compliance of delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies (including retailers, manufacturers, distributors, and mobile business service providers) for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Logistics is the management of the flow of resources between a point of origin and a point of destination &#8211; processes that move items (such as goods, people, information) from point A to point B. Supply chain management is broader than logistics and includes the sourcing, procurement, conversion and storage of resources for consumption by an enterprise. Logistics and supply chain management are ever evolving as companies are increasingly seeking automation and real-time control of their supply chain activities. We believe companies are looking for integrated solutions for managing inventory in transit, conveyance units, people, data and business documents.</span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We believe logistics-intensive organizations are seeking to reduce operating costs, differentiate themselves, improve margins, and better serve customers. Global trade and transportation processes are often manual and complex to manage. This is a consequence of the growing number of business partners participating in companies&#8217; global supply chains and a lack of standardized business processes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Additionally, global sourcing, logistics outsourcing, imposition of additional customs and regulatory requirements and the increased rate of change in day-to-day business requirements are adding to the overall complexities that companies face in planning and executing in their supply chains. Whether a shipment is delayed at the border, a customer changes an order, or a breakdown occurs on the road, there are increasingly more issues that can significantly impact the execution of fulfillment schedules and associated costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The rise of ecommerce has heightened these challenges for many suppliers with end-customers increasingly demanding narrower order-to-fulfillment periods, lower prices and greater flexibility in scheduling and rescheduling deliveries. End customers also want real-time updates on delivery status, adding considerable burden to supply chain management as process efficiency is balanced with affordable service.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In this market, the movement and sharing of data between parties involved in the logistics process is equally important to the physical movement of goods. Manual, fragmented and distributed logistics solutions are often proving inadequate to address the needs of operators. Connecting manufacturers and suppliers to carriers on an individual, one-off basis is too costly, complex and risky for organizations dealing with many trading partners. Further, many of these solutions do not provide the flexibility required to efficiently accommodate varied processes for organizations to remain competitive. We believe this presents an opportunity for logistics technology providers to unite this highly fragmented community and help customers improve efficiencies in their operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As the market continues to change, we have been evolving to meet our customers&#8217; needs. While the rate of adoption of newer logistics and supply chain management technologies is increasing, a large number of organizations still have manual </span></p></div></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">5</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><div style="white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">business processes. We have been educating our prospects and customers on the value of connecting to trading partners through our Global Logistics Network (&#8220;GLN&#8221;) and automating, as well as standardizing, multi-party business processes. We believe that our target customers are increasingly looking for a single source, neutral, network-based solution provider who can help them manage the end-to-end shipment &#8211; from researching global trade information, to the booking of a shipment, to the tracking of that shipment as it moves, to the regulatory compliance filings to be made during the move and, finally, to the settlement and audit of the invoice.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Additionally, regulatory initiatives mandating electronic filing of shipment information with customs authorities require companies to automate aspects of their shipping processes to remain compliant and competitive. Our customs compliance technology helps shippers, transportation providers, freight forwarders and other logistics intermediaries to securely and electronically file shipment and tariff/duty information with customs authorities and self-audit their own efforts. Our technology also helps carriers and freight forwarders efficiently coordinate with customs brokers and agencies to expedite cross-border shipments. While many compliance initiatives started in the US, compliance has now become a global issue with significantly more international shipments crossing several borders on the way to their final destinations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Increasingly, data and content have become central to supply chain planning and execution. Complex international supply chains are affected by logistics service provider performance, capacity, and productivity, as well as regulatory frameworks such as free trade agreements. We believe our Global Trade Data, Trade Regulations, Free-Trade-Agreement, and duty rate and calculation solutions help give our customers the intelligence they need to improve their sourcing, landed cost, and transportation lane and provider selection processes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Solutions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#8217; Logistics Technology Platform unites a growing global community of logistics-focused parties, allowing them to transact business while </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">leveraging a broad array of applications designed to help logistics-intensive businesses thrive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Logistics Technology Platform fuses our GLN, an extensive logistics network covering multiple transportation modes, with a broad array of modular, interoperable web and wireless logistics management solutions. Designed to help accelerate time-to-value and increase productivity and performance for businesses of all sizes, the Logistics Technology Platform leverages the GLN&#8217;s multimodal logistics community to enable companies to quickly and cost-effectively connect and collaborate.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#8217; GLN, the underlying foundation of the Logistics Technology Platform, manages the flow of data and documents that track and control inventory, assets and people in motion. Designed expressly for logistics operations, it is native to the particularities of different transportation modes and country borders. As a state-of-the-art messaging network with wireless capabilities, the GLN helps manage business processes in real-time and in-motion. Its capabilities go beyond logistics, supporting common commercial transactions, regulatory compliance documents, and customer specific needs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The GLN extends its reach using interconnect agreements with other general and logistics-specific networks, to offer companies access to a wide array of trading partners. With the flexibility to connect and collaborate in unique ways, companies can effectively route , translate and transfer data to and from partners and deploy additional Descartes solutions on the GLN. The GLN allows &#8220;low tech&#8221; partners to act and respond with &#8220;high tech&#8221; capabilities and connect to the transient partners that exist in many logistics operations. This inherent adaptability creates opportunities to develop logistics business processes that can help customers differentiate themselves from their competitors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Descartes&#8217; Logistics Application Suite offers a wide array of modular, cloud-based, interoperable web and wireless logistics management applications. These solutions embody Descartes&#8217; deep domain expertise, not merely &#8220;check box&#8221; functionality. These solutions deliver value for a broad range of logistics-intensive organizations, whether they purchase transportation, run their own fleet, operate globally or locally, or work across air, </span></p></div></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">6</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><div style="white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">ocean or ground transportation. Descartes&#8217; comprehensive suite of solutions includes:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Routing, Mobile and Telematics;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Transportation Management;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Ecommerce, Shipping &amp; Fulfillment;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Customs &amp; Regulatory Compliance;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Global Trade Intelligence;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">B2B Messaging &amp; Connectivity; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Broker &amp; Forwarder Enterprise Systems.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Descartes applications forming part of the Logistics Technology Platform are modular and interoperable to allow organizations the flexibility to deploy them quickly within an existing portfolio of solutions. Implementation is streamlined because these solutions use web-native or wireless user interfaces and are pre-integrated with the GLN. With interoperable and multi-party solutions, Descartes&#8217; solutions are designed to deliver functionality that can enhance a logistics operation&#8217;s performance and productivity both within the organization and across a complex network of partners.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#8217; expanding global trade intelligence offering unites systems and people with trade information to enable organizations to work smarter by making more informed supply chain and logistics decisions. Our global trade intelligence solutions can help customers: research and analyze global trade movements, regulations and trends; reduce the risk of transacting with denied parties; increase trade compliance rates; optimize sourcing, procurement, and business development strategies; and minimize duty spend.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#8217; GLN community members enjoy extended command of operations and accelerated time-to-value relative to many alternative logistics solutions. Given the inter-enterprise nature of logistics, quickly gaining access to partners is paramount. For this reason, Descartes has focused on growing a community that strategically attracts and retains relevant logistics parties. Upon joining the GLN community, many companies find that a number of their trading partners are already members with an existing connection to the GLN. This helps to minimize the time required to integrate Descartes&#8217; logistics management applications and to begin realizing results. Descartes is committed to continuing to expand community membership. Companies that join the GLN community or extend their participation find </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">a single place where their entire logistics network can exist regardless of the range of transportation modes, the number of trading partners or the variety of regulatory agencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Sales and Distribution</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our sales efforts are primarily directed towards two specific customer markets: (a) transportation companies and logistics service providers; and (b) manufacturers, retailers, distributors and mobile business service providers. Our sales staff is regionally based and trained to sell across our solutions to specific customer markets. In North America and Europe, we promote our products primarily through direct sales efforts aimed at existing and potential users of our products. In the Asia Pacific, Indian subcontinent, South America and African regions, we focus on making our channel partners successful. Channel partners for our other international operations include distributors, alliance partners and value-added resellers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">United by Design</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#8217; &#8216;United By Design&#8217; strategic alliance program is intended to ensure complementary hardware, software and network offerings are interoperable with Descartes&#8217; solutions and work together seamlessly to solve multi-party business problems.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">&#8216;United By Design&#8217; is intended to create a global ecosystem of logistics-intensive organizations working together to standardize and automate business processes and manage resources in motion. The program centers on Descartes&#8217; Open Standard Collaborative Interfaces, which provide a wide variety of connectivity mechanisms to integrate a broad spectrum of applications and services.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Descartes has partnering relationships with multiple parties across the following three categories:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Technology Partners &#8211; Complementary hardware, software, network, and embedded technology providers that extend the functional breadth of Descartes&#8217; solution capabilities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Consulting Partners - Large system integrators and enterprise resource planning system vendors through to vertically specialized or niche consulting organizations that provide domain </span></td></tr></table></div></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">7</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><div style="white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"/><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">expertise and/or implementation services for Descartes&#8217; solutions; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Channel Partners (Value-Added Resellers) &#8211; Organizations that market, sell, implement and support Descartes&#8217; solutions to extend access and expand market share into territories and markets where Descartes might not have a focused direct sales presence.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Marketing</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our marketing efforts are focused on growing demand for our solutions and establishing Descartes as a thought leader and innovator across the markets we serve. Marketing programs are delivered through integrated initiatives designed to reach our target customer and prospect groups. These programs include digital and online marketing, partner-focused campaigns, proactive media relations, and direct corporate marketing efforts.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fiscal 2025 Highlights</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">On March 28, 2024, Descartes acquired all of the shares of OCR Services, Inc. (&#8220;OCR&#8221;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately $82.8 million, net of cash acquired, which was funded from cash on hand. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">On April 19, 2024, Descartes acquired all of the shares of Aerospace Software Developments (&#8220;ASD&#8221;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately $62.5 million </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">(EUR 58.7 million), net of cash acquired, which was substantially paid at closing from cash on hand with the remaining $3.6 million paid in the fourth quarter of fiscal 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">On June 10, 2024, Descartes acquired all of the shares of BoxTop Technologies Limited (&#8220;BoxTop&#8221;), a leading provider of shipment management solutions for small- to mid-sized logistics services providers. The purchase price for the acquisition was approximately $12.1 million (GBP 9.5 million), net of cash acquired, which was funded from cash on hand.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">On September 17, 2024, Descartes acquired all of the shares of Assure Assist, Inc., doing business as MyCarrierPortal (&#8220;MCP&#8221;), a leading provider of carrier onboarding and risk monitoring solutions for the trucking industry. The purchase price for the acquisition was approximately $22.5 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to $6.0 million based on MCP achieving revenue-based targets over the first two years post-acquisition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">On October 11, 2024, Descartes acquired all of the shares of Sellercloud LLC and certain assets of Sellercloud Europe Ltd. (collectively referred to as &#8220;Sellercloud&#8221;), a leading provider of omnichannel ecommerce solutions. The purchase price for the acquisition was approximately $110.2 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to $20.0 million based on Sellercloud achieving revenue-based targets over the first two years post-acquisition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;visibility:hidden;">&#8203;</span></p></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">8</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_4e8f8546_7cac_4d8d_b7c1_4f6ffcff5b46"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CONSOLIDATEDOPERATIONS_544865"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED OPERATIONS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows, for the periods indicated, our results of operations in millions of dollars (except per share and weighted average share amounts):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 572.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 486.0</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 158.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 138.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 113.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 492.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 434.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 372.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Operating expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 234.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 209.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 176.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other charges</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 7.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 21.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 5.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 69.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 60.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 60.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Income from operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 181.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 142.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 130.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 11.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 9.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 4.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (1.0)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (1.4)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (1.2)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 191.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 151.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 133.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 53.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 41.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 28.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (5.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (6.0)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 3.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 143.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 115.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 102.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">EARNINGS PER SHARE</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">BASIC</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 1.68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.36</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.21</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">DILUTED</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 1.64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.34</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.18</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">BASIC</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 85,443</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,068</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,791</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">DILUTED</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 87,323</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,818</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,451</span></p></td></tr><tr><td style="vertical-align:middle;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">OTHER PERTINENT INFORMATION</span></p></td><td style="vertical-align:middle;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:middle;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:middle;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total assets</span></p></td><td style="vertical-align:middle;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 1,647.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1,474.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1,316.0</span></p></td></tr><tr><td style="vertical-align:middle;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Non-current financial liabilities</span></p></td><td style="vertical-align:middle;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 4.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 3.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 3.9</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total revenues </b><span style="font-family:'Verdana';">consist of </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">license revenues, services revenues </span><span style="font-family:'Verdana';">and </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">professional services and other revenues</span><span style="font-family:'Verdana';">. License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our total revenues were $651.0 million, $572.9 million and $486.0 million in 2025, 2024 and 2023, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The increase in revenues in 2025 as compared to 2024 was primarily due to the partial period of contribution from the acquisitions completed in 2025 (OCR, ASD, BoxTop, MCP and Sellercloud, collectively, the &#8220;2025 Acquisitions&#8221;), which contributed an incremental $36.4 million in revenue in 2025. Revenues were also positively impacted by growth in revenues from new and existing customers, which contributed an incremental $28.8 million in revenue in 2025. While we saw growth across many lines of our business, revenue growth in 2025 from new and existing customers was driven by sales of our global trade intelligence, routing and transportation management solutions. The principal contributor to the balance of the increase in revenues in 2025 as compared to 2024 was a full period of contribution from the acquisitions completed </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">9</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">in 2024 (Windigo Logistics, Inc., doing business as GroundCloud (&#8220;GroundCloud&#8221;), and Localz Pty Ltd. (&#8220;Localz&#8221;), collectively, the &#8220;2024 Acquisitions&#8221;). </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The increase in revenues in 2024 as compared to 2023 was primarily due to growth in revenues from new and existing customers, which contributed an incremental $38.2 million in revenue in 2024. While we saw growth across many lines of our business, revenue growth in 2024 from new and existing customers was driven by sales of our global trade intelligence, routing and transportation management solutions, partially offset by the negative impact from foreign exchange rates as a result of the weakening of the Canadian dollar as compared to the US dollar. Revenues were also positively impacted by the partial period of contribution from the 2024 Acquisitions, which contributed an incremental $37.3 million in revenue in 2024. The principal contributor to the balance of the increase in revenues in 2024 as compared to 2023 was a full period of contribution from the acquisitions completed in 2023 (NetCHB, LLC (&#8220;NetCHB&#8221;), Foxtrot, Inc. (&#8220;Foxtrot&#8221;), XPS Technologies, LLC (&#8220;XPS&#8221;), and Trans-Soft, LLC, doing business as Supply Vision (&#8220;Supply Vision&#8221;), collectively, the &#8220;2023 Acquisitions&#8221;). </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides additional analysis of our revenues by type (in millions of dollars and as a percentage of total revenues) generated over each of the periods indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">License revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 5.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 5.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 8.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">1</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">2</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Services revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 590.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 520.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 435.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">91</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">91</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">90</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 55.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 46.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 41.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">8</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">8</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 572.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 486.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">license revenues</span><span style="font-family:'Verdana';"> were $5.7 million, $5.3 million and $8.4 million in 2025, 2024 and 2023, respectively, representing 1%, 1% and 2% of total revenues in 2025, 2024 and 2023, respectively. While our sales focus has been on generating services revenues in our SaaS business model, we continue to see a market for licensing the products in our omni-channel retailing and home delivery logistics solutions. The amount of license revenues in a period is dependent on our customers&#8217; preference to license our solutions instead of purchasing our solutions as a service and we anticipate variances from period to period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Our </span><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">services revenues</span><span style="font-family:'Verdana';font-size:9.5pt;"> were $590.2 million, $520.9 million and $435.7 million in 2025, 2024 and 2023, respectively, representing 91%, 91% and 90% of total revenues in 2025, 2024 and 2023, respectively. The increase in services revenues in 2025 as compared to 2024 was primarily due to the partial period of contribution from the 2025 Acquisitions, which contributed an incremental $35.0 million in services revenues in 2025. Services revenues were also positively impacted by growth from new and existing customers, which contributed an incremental $29.7 million in revenue in 2025. The growth in services revenues in 2025 from new and existing customers was driven by sales of our global trade intelligence, routing and transportation management solutions. The principal contributor to the balance of the increase in services revenues in 2025 as compared to 2024 was a full period of contribution from the 2024 Acquisitions. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The increase in 2024 as compared to 2023 was primarily due to growth in services revenues from new and existing customers, which contributed an incremental $43.6 million in revenue. The growth in service revenues in 2024 was driven by sales to new and existing customers of our global trade intelligence, routing and transportation management solutions, partially offset by the negative impact from foreign exchange rates as a result of the weakening of the Canadian dollar as compared to the US dollar. Revenues were also positively impacted by the partial period of contribution from the 2024 Acquisitions, which contributed an incremental $31.9 million in </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">10</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">services revenues in 2024. The principal contributor to the balance of the increase in services revenues in 2024 as compared to 2023 was a full period of contribution from the 2023 Acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Our </span><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">professional services and other</span><span style="font-family:'Verdana';font-size:9.5pt;"> revenues were $55.1 million, $46.7 million and $41.9 million in 2025, 2024 and 2023, respectively, representing 8% of total revenues in each of 2025, 2024, and 2023. The increase in professional services and other revenues in 2025 as compared to 2024 was primarily due to a full period of contribution from the 2024 Acquisitions, which contributed an incremental $8.3 million in professional services and other revenues in 2025. The contribution of the 2024 Acquisitions in 2025 was primarily driven by an increase in hardware revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The increase in professional services and other revenues in 2024 as compared to 2023 was primarily due to the inclusion of a partial period of revenues from the 2024 Acquisitions, which contributed an incremental $5.4 million in professional services and other revenues partially offset by lower professional services and other revenues in the United States.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We operate in one business segment providing logistics technology solutions. The following table provides additional analysis of our revenues by geographic location of customer (in millions of dollars and as a percentage of total revenues):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 439.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 382.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 307.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">67</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">67</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">63</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa (&#8220;EMEA&#8221;)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 153.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 137.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 126.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">24</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">24</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">26</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 39.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 35.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 34.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">6</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">7</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 19.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 18.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 17.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">3</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">4</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 572.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 486.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenues from the United States</span><span style="font-family:'Verdana';"> were $439.1 million, $382.2 million and $307.1 million in 2025, 2024 and 2023, respectively. The increase in 2025 as compared to 2024 was primarily a result of the partial period of contribution from the 2025 Acquisitions, which contributed an incremental $25.7 million in revenue in 2025. Revenues were also positively impacted by growth in revenues from new and existing customers, which contributed an incremental $19.4 million in revenue. The growth in revenues from new and existing customers in 2025 was driven by sales of our global trade intelligence, routing and transportation management solutions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The increase in 2024 as compared to 2023 was primarily a result of the inclusion of a partial period of revenues from the 2024 Acquisitions which contributed an incremental $34.3 million in revenue. The principal contributor to the balance of the increase in revenues in 2024 as compared to 2023 was growth in services revenues from new and existing customers, which contributed an incremental $33.0 million in revenue. The growth in 2024 was driven by sales to new and existing customers of our global trade intelligence, routing and transportation management solutions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from the EMEA region</span><span style="font-family:'Verdana';font-size:9.5pt;"> were $153.0 million, $137.2 million and $126.9 million in 2025, 2024, and 2023, respectively. The increase in 2025 as compared to 2024 was primarily due to the partial period of contribution from the 2025 Acquisitions, which contributed an incremental $10.2 million in revenue. Revenues were also positively impacted by growth in revenues from new and existing customers, which contributed an incremental $4.9 million in revenue in 2025.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">11</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The increase in 2024 as compared to 2023 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $9.0 million in revenue.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from Canada</span><span style="font-family:'Verdana';font-size:9.5pt;"> were $39.3 million, $35.4 million and $34.6 million in 2025, 2024 and 2023, respectively. The increase in 2025 as compared to 2024 was primarily due to growth in revenues from new and existing customers, which contributed an incremental $3.8 million in revenue. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The increase in 2024 as compared to 2023 was primarily due to growth in services revenues from new and existing customers and the inclusion of a partial period of revenues from the 2024 Acquisitions which contributed an incremental $1.5 million and $0.2 million in revenue, respectively, partially offset by the negative impact from foreign exchange rates as a result of the weakening of the Canadian dollar as compared to the US dollar.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from the Asia Pacific region</span><span style="font-family:'Verdana';font-size:9.5pt;"> were $19.6 million, $18.1 million and $17.4 million in 2025, 2024 and 2023, respectively. The increase in 2025 as compared to 2024 was primarily due to growth in revenues from new and existing customers, which contributed an incremental $0.7 million in revenue in 2025. Revenues were also positively impacted by a full period of contribution from the 2024 Acquisitions, which contributed an incremental $0.5 million in revenue. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The increase in 2024 as compared to 2023 was primarily due to the inclusion of a partial period of revenues from the 2024 Acquisitions which contributed an incremental $0.6 million in revenue.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides analysis of cost of revenues (in millions of dollars) and the related gross margins for the periods indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">License revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 5.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 5.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 8.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of license revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 4.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 7.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">88</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">85</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">87</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Services revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 590.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 520.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 435.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of services revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 123.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 109.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 88.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 466.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 411.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 347.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">79</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">79</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">80</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Professional services and other revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 55.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 46.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 41.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of professional services and other revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 34.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 28.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 23.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 20.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 18.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 18.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">38</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">40</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">43</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Total</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 572.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 486.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 158.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 138.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 113.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 492.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 434.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 372.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">76</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">77</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">12</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cost of license revenues</span><span style="font-family:'Verdana';"> consists of costs related to our sale of third-party technology, such as third-party map license fees and royalties.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Gross margin percentage for license revenues</span><span style="font-family:'Verdana';"> was 88%, 85% and 87% in 2025, 2024 and 2023, respectively. Our gross margin on license revenues is dependent on the proportion of our license revenues that involve third-party technology. Consequently, our gross margin percentage for license revenues is higher when a lower proportion of our license revenues attracts third-party technology costs, and vice versa.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cost of services revenues</span><span style="font-family:'Verdana';"> consists of internal costs of running our systems and applications and other personnel-related expenses incurred in providing maintenance, including customer support.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">Gross margin percentage for services revenues</span><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;"> </i><span style="font-family:'Verdana';font-size:9.5pt;">was 79%, 79% and 80% in 2025, 2024 and 2023, respectively. Overall, the margins were consistent in 2025, 2024 and 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cost of professional services and other revenues</span><span style="font-family:'Verdana';"> consists of personnel-related expenses incurred in providing professional services, hardware installation as well as hardware costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">Gross margin percentage for professional services and other revenues</span><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;"> </i><span style="font-family:'Verdana';font-size:9.5pt;">was 38%, 40% and 43% for 2025, 2024 and 2023, respectively. Hardware and other revenues typically have lower margins than our professional services revenues and as such variances in gross margin can occur from period to period as a result of the sales mix. The margin in 2025 was negatively impacted by an increased proportion of lower-margin hardware revenues as compared to professional services and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Operating expenses, </span><span style="font-family:'Verdana';">consisting of sales and marketing, research and development and general and administrative expenses, were $234.4 million, $209.7 million and $176.7 million for 2025, 2024 and 2023, respectively. Operating expenses were higher in 2025 as compared to 2024 primarily due to a partial period of costs from the 2025 Acquisitions and increased headcount-related costs, including stock compensation expense and excluding headcount &#8211; related costs from the 2024 and 2025 Acquisitions, which added approximately $13.1 million and $8.2 million to operating expenses, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Operating expenses were higher in 2024 as compared to 2023 primarily due to a partial period of costs from the 2024 Acquisitions, which added approximately $12.0 million to operating expenses. Operating expenses were also higher in 2024 as compared to 2023 due to increased headcount-related costs, including stock compensation expense and excluding headcount-related costs from the 2023 and 2024 Acquisitions, and a full period of costs from the 2023 Acquisitions, which added approximately $10.8 million and $2.9 million, respectively.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">13</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides analysis of operating expenses (in millions of dollars and as a percentage of total revenues) for the periods indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 572.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 486.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Sales and marketing expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 73.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 68.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 56.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">11</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">12</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">12</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Research and development expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 95.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 70.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">15</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">15</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">14</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">General and administrative expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 65.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 57.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 49.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total operating expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 234.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 209.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 176.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">36</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">37</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">36</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Sales and marketing expenses</span><span style="font-family:'Verdana';"> include salaries, commissions, stock-based compensation and other personnel-related costs, bad debt expenses, travel expenses, advertising programs and services, and other promotional activities associated with selling and marketing our services and products. Sales and marketing expenses were $73.7 million, $68.2 million and $56.6 million in 2025, 2024 and 2023, respectively. Sales and marketing expenses as a percentage of total revenues were 11% in 2025, 12% in 2024 and 12% in 2023, respectively. The increase in sales and marketing expenses in 2025 as compared to 2024 was primarily due to increased headcount-related costs associated with the 2025 Acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The increase in sales and marketing expenses in 2024 as compared to 2023 was primarily due to increased headcount-related costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development expenses</span><span style="font-family:'Verdana';"> consist primarily of salaries, stock-based compensation and other personnel-related costs of technical and engineering personnel associated with our research and product development activities, as well as costs for third-party outsourced development providers. We expensed all costs related to research and development in 2025, 2024 and 2023. Research and development expenses were $95.5 million, $84.1 million and $70.4 million in 2025, 2024 and 2023, respectively. Research and development expenses as a percentage of total revenues were 15% in 2025, 15% in 2024 and 14% in 2023, respectively. The increase in research and development expenses in 2025 as compared to 2024 was primarily due to headcount-related costs associated with the 2025 Acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The increase in research and development expenses in 2024 as compared to 2023 was primarily due to headcount-related costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">General and administrative expenses</span><span style="font-family:'Verdana';"> consist primarily of salaries, stock-based compensation and other personnel-related costs of administrative personnel, as well as professional fees, insurance and other administrative expenses. General and administrative costs were $65.2 million, $57.4 million and $49.7 million in 2025, 2024 and 2023, respectively. General and administrative expenses as a percentage of total revenues were 10% in each of 2025, 2024 and 2023. The increase in general and administrative expenses in 2025 as compared to 2024 was primarily due to increased stock-based compensation costs from fiscal 2024 and 2025 grants as well as increased SaaS software and maintenance costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The increase in general and administrative expenses in 2024 as compared to 2023 was primarily due to increased SaaS software and maintenance costs as well as increased employee stock-based compensation from fiscal 2023 and fiscal 2024 grants.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">14</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Other charges </span><span style="font-family:'Verdana';">consist primarily of acquisition-related costs with respect to completed and prospective acquisitions, contingent consideration adjustments and restructuring charges. Acquisition-related costs primarily include advisory services, brokerage services, administrative costs and retention bonuses, and relate to completed and prospective acquisitions. Contingent consideration adjustments relate to changes in the fair value estimate of contingent consideration. Restructuring costs relate to the integration of previously-completed acquisitions and other cost-reduction activities. Other charges were $7.5 million, $21.6 million and $5.4 million in 2025, 2024 and 2023, respectively. The decrease in other charges in 2025 as compared to 2024 was primarily a result of a decrease in contingent consideration adjustments. Contingent consideration adjustments relate to changes in anticipated acquisition earnout payment accruals primarily as a result of increases or decreases to revenue performance and forecasts. Revenue forecasts are updated on a quarterly basis and the related earnout payment accruals are updated accordingly. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The increase in other charges in 2024 as compared to 2023 was primarily a result of an increase in contingent consideration adjustments of $12.9 million. The contingent consideration adjustments recorded in 2024 related to an increase in anticipated acquisition earnout payment accruals primarily as a result of increases to revenue performance and forecasts.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Amortization of intangible assets</span><span style="font-family:'Verdana';"> is amortization of the value attributable to intangible assets, including customer agreements and relationships, non-compete covenants, existing technologies and trade names, in each case associated with acquisitions completed by us as of the end of each reporting period. Intangible assets with a finite life are amortized to income over their useful life. The amount of amortization expense in a fiscal period is dependent on our acquisition activities. Amortization of intangible assets was $69.4 million, $60.5 million and $60.2 million in 2025, 2024 and 2023, respectively. Amortization expense increased in 2025 as compared to 2024 primarily due to the 2025 Acquisitions, which resulted in an incremental $11.3 million of amortization expense, partially offset by certain assets being fully amortized in the current year. Amortization expense increased in 2024 as compared to 2023 primarily due to the 2024 Acquisitions, which resulted in an incremental $10.2 million of amortization expense partially offset by certain assets being fully amortized in the current year.</span> <span style="font-family:'Verdana';">As at January 31, 2025, the unamortized portion of all intangible assets amounted to $321.3 million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test the carrying value of our finite life intangible assets for recoverability when events or changes in circumstances indicate that there may be evidence of impairment. We write down intangible assets or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible assets or asset groups is determined by discounting the expected related cash flows. No finite life intangible asset or asset group impairment has been identified or recorded for any of the fiscal periods reported.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Investment and other income</span><span style="font-family:'Verdana';"> was $11.5 million, $9.7 million and $4.5 million in 2025, 2024 and 2023, respectively. Investment and other income is generally earned on excess cash balances. In both 2025 and 2024, the increase in investment and other income was primarily due to higher average interest rates and/ or cash balances.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Interest expense</span><span style="font-family:'Verdana';"> was $1.0 million, $1.4 million and $1.2 million in 2025, 2024 and 2023, respectively. Interest expense is primarily comprised of debt standby charges as well as the amortization of deferred financing charges. No amounts were borrowed and outstanding on our revolving debt facility in 2025, 2024 and 2023, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income tax expense </span><span style="font-family:'Verdana';">is comprised of current and deferred income tax expense. Income tax expense for 2025, 2024 and 2023 was 25%, 23% and 24% of income before income taxes, respectively, or $48.3 million, $35.2 million and $31.5 million, respectively. The income tax rate as a percentage of income before income taxes increased in 2025 as compared to 2024 primarily due to a recovery related to changes in estimates in the United States and Canada in the comparative period.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">15</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The income tax rate as a percentage of income before income taxes (the &#8220;effective tax rate&#8221;) decreased in 2024 as compared to 2023 primarily due to recoveries in the United States and Canada from a change in prior year estimates and the recovery of certain tax attributes in the United States.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income tax expense &#8211; current</span><span style="font-family:'Verdana';"> was $53.4 million, $41.2 million and $28.3 million in 2025, 2024 and 2023, respectively. Current income tax expense increased in 2025 as compared to 2024 primarily due to a decrease in tax attributes available to shelter income in Canada and the United Kingdom.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2024 as compared to 2023 primarily due to a decrease in tax attributes available to shelter income in Canada and new requirements to capitalize research and development expenses for tax purposes in the United States.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income tax expense (recovery) &#8211; deferred</span><span style="font-family:'Verdana';"> was $(5.1) million, ($6.0) million and $3.2 million in 2025, 2024 and 2023, respectively. Deferred income tax recovery decreased in 2025 as compared to 2024 primarily due to the utilization of tax attributes in the Unites States partially offset by the full utilization of tax attributes in the United Kingdom and Canada in the prior period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense decreased in 2024 as compared to 2023 primarily due to the capitalization of research and development expenses in the United States and the increased utilization of tax attributes in Canada in 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Net income</span><span style="font-family:'Verdana';"> was $143.3 million, $115.9 million and $102.2 million in 2025, 2024 and 2023, respectively. Net income in 2025 as compared to 2024 was positively impacted by the growth in services revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Net income in 2024 as compared to 2023 was positively impacted by the growth in services revenues partially offset by an increase in other charges.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><a id="_229c00ad_601c_4ebc_80cb_931791c28084"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="QUARTERLYOPERATINGRESULTS_456981"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">QUARTERLY OPERATING RESULTS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides an analysis of our unaudited operating results (in thousands of dollars, except per share and weighted average number of share amounts) for each of the quarters indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:39.71%;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fiscal</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:39.71%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fiscal</b></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:39.71%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;border-bottom:1px solid #000000;border-left:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:39.71%;border-bottom:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fourth</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Third</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fourth</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Third</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First</b></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td></tr><tr><td style="vertical-align:bottom;width:16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 167.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 168.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 163.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 151.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 148.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 144.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 143.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 136.6</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 128.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 125.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 122.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 115.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 112.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 110.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 108.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 103.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Operating expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 59.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 60.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 59.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 54.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 52.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 53.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 53.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 50.6</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 37.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 36.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 34.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 34.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 31.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 26.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 28.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 29.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Basic earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.44</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.43</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.41</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.41</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.37</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.31</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.33</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.35</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.43</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.42</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.40</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.40</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.37</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.31</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.32</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.34</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding (thousands):</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,564</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,501</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,430</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,274</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,136</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,101</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,083</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,949</span></p></td></tr><tr><td style="vertical-align:bottom;width:16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 87,579</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 87,342</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 87,241</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 87,116</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,953</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,791</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,783</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,746</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">16</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues over the comparative periods have been positively impacted by the eleven acquisitions that we have completed since the beginning of fiscal 2023 through the end of the fourth quarter of fiscal 2025. In addition, we have seen increased revenues as a result of an increase in transactions processed over our GLN business document exchange as well as an increase in subscriptions for our software solutions and data content. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our services revenues continue to have minor seasonal trends. In the first fiscal quarter of each year, we historically have seen slightly lower shipment volumes by air and truck which impact the aggregate number of transactions flowing through our GLN business document exchange. In the second fiscal quarter of each year, we historically have seen a slight increase in ocean services revenues as ocean carriers are in the midst of their customer contract negotiation period. In the third fiscal quarter of each year, we have historically seen shipment and transactional volumes at their highest. In the fourth fiscal quarter of each year, the various international holidays impact the aggregate number of shipping days in the quarter, and historically we have seen this adversely impact the number of transactions our network processes and, consequently, the amount of services revenues we receive during that period. In the second and fourth fiscal quarters of each year, we historically have seen a slight decrease in professional services revenues due to various international holidays and vacation seasons. Overall, the impact of seasonal trends has a relatively minor impact on our revenues quarter to quarter. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Revenues decreased in the fourth quarter of 2025 as compared to the third quarter of 2025 primarily due to a $5.0 million decrease in professional services and other revenues, related to a decrease in hardware revenues from the 2024 Acquisitions. Revenues were also negatively impacted by a decrease of $3.2 million in license revenues, partially offset by a full period of contribution from the MCP and Sellercloud acquisitions as well as growth in services revenues with new and existing customers, which contributed an incremental $5.6 million and $1.2 million in revenue, respectively. Revenues in the fourth quarter of 2025 as compared to the third quarter of 2025 were also negatively impacted by foreign exchange rates as a result of the weakening of the British pound sterling, euro and Canadian dollar compared to the US dollar. Gross margin was positively impacted in the fourth quarter of 2025 as compared to the third quarter of 2025 by a $3.7 million decrease in cost of revenues, primarily due to decreased hardware costs related to the 2024 Acquisitions. While net income increased overall, it was negatively impacted in the fourth quarter of 2025 as compared to the third quarter of 2025 by a $1.9 million increase in amortization expense primarily due to the 2025 Acquisitions, partially offset by certain assets being fully amortized in the fourth quarter of 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><a id="_2491e08f_6152_41ea_9cad_19d5523de954"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="LIQUIDITYANDCAPITALRESOURCES_33729"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">LIQUIDITY AND CAPITAL RESOURCES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash. </span><span style="font-family:'Verdana';">We had $236.1 million and $321.0 million in cash as at January 31, 2025 and January 31, 2024, respectively. All cash was held in interest-bearing bank accounts, primarily with major Canadian, US and European banks. The cash balance decreased from January 31, 2024 to January 31, 2025 by $84.9 million primarily due to cash used for acquisitions partially offset by cash generated from operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Credit facility.</span><span style="font-family:'Verdana';"> The facility is a $350.0 million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the term ending December 2027. With the approval of the lenders, the credit facility can be expanded to a total of $500.0 million. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#8217; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Canadian Overnight Repo Rate Average (CORRA) or the Secured Overnight Financing Rate (SOFR) plus an additional 0 to 250 basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. A </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">17</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">standby fee of between 20 to 40 basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, $350.0 million of the revolving operating credit facility remained available for use. We were in compliance with the covenants of the credit facility as at January 31, 2025 and remain in compliance as of the date of this MD&amp;A.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Short-form base shelf prospectus. </span><span style="font-family:'Verdana';">On July 15, 2022, we filed a final short-form base shelf prospectus (the &#8220;2022 Base Shelf Prospectus&#8221;), allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit.</span> <span style="font-family:'Verdana';">No securities were sold pursuant to the 2022 Base Shelf Prospectus, which was withdrawn in July 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2024, we filed a final short - form base shelf prospectus (the &#8220;2024 Base Shelf Prospectus&#8221;), allowing us to offer and issue an unlimited quantity of the following securities during the 25 - month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2024 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Working capital. </span><span style="font-family:'Verdana';">As at January 31, 2025, our working capital surplus (current assets less current liabilities) was $135.5 million. Current assets primarily include $236.1 million of cash, $54.0 million of current trade receivables and $45.5 million of prepaid expenses and other. Current liabilities primarily include $104.2 million of deferred revenue, $79.7 million of accrued liabilities and $20.7 million of accounts payable. Our working capital has decreased from January 31, 2024 to January 31, 2025 by $79.1 million, primarily due to by cash used for acquisitions partially offset by cash generated from operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Historically, we&#8217;ve financed our operations and met our capital expenditure requirements primarily through cash flows provided from operations, issuances of common shares and proceeds from debt. We anticipate that, considering the above, we have sufficient liquidity to fund our current cash requirements for working capital, contractual commitments, capital expenditures and other operating needs. We also believe that we have the ability to generate sufficient amounts of cash in the long term to meet planned growth targets and to fund strategic transactions. Should additional future financing be undertaken, the proceeds from any such transaction could be utilized to fund strategic transactions or for general corporate purposes, including the repayment of outstanding debt. We expect, from time to time, to continue to consider select strategic transactions to create value and improve performance, which may include acquisitions, dispositions, restructurings, joint ventures and partnerships, and we may undertake further financing transactions, including draws on our credit facility, other debt instruments or equity offerings, in connection with any such potential strategic transaction.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">With respect to earnings of our non-Canadian subsidiaries, our intention is that these earnings will be reinvested in each subsidiary indefinitely. Of the $236.1 million of cash as at January 31, 2025, $80.6 million was held by our foreign subsidiaries, most significantly in the United States with lesser amounts held in other countries in the EMEA and Asia Pacific regions. To date, we have not encountered significant legal or practical restrictions on the abilities of our subsidiaries to repatriate money to Canada, even if such restrictions may exist in respect of certain foreign jurisdictions where we have subsidiaries. In the future, if we elect to repatriate the unremitted earnings of our foreign subsidiaries in the form of dividends, or if the shares of the foreign subsidiaries are sold or transferred, then we could be subject to additional Canadian or foreign income taxes, net of the impact of any available foreign tax credits, which would result in a higher effective tax rate. We have not provided for foreign withholding taxes or deferred income tax liabilities </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">18</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">related to unremitted earnings of our non-Canadian subsidiaries, since such earnings are considered permanently invested in those subsidiaries or are not subject to withholding taxes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The table set forth below provides a summary of cash flows for the periods indicated in millions of dollars:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash provided by operating activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 219.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 207.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 192.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Additions to property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (6.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (5.6)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (6.1)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition of subsidiaries, net of cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (290.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (142.7)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (115.6)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Payment of debt issuance costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (0.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (1.1)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Issuance of common shares, net of issuance costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 12.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 9.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Payment of withholding taxes on net share settlements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (6.7)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (4.9)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Payment of contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (9.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (19.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (5.2)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Effect of foreign exchange rate on cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (3.6)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (3.1)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net change in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (84.9)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 44.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 63.0</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash, beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 321.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 276.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 213.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash, end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 236.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 321.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 276.4</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash provided by operating activities</span><span style="font-family:'Verdana';"> was $219.3 million, $207.7 million and $192.4 million for 2025, 2024 and 2023, respectively. For 2025, the $219.3 million of cash provided by operating activities resulted from $143.3 million of net income, plus adjustments for $89.9 million of non-cash items included in net income and less $13.9 million of cash used in changes in our operating assets and liabilities. Cash provided by operating activities increased in 2025 as compared to 2024 primarily due to the increase in net income adjusted for non-cash items as well as strong cash collections from customers. Cash provided by operating activities was negatively impacted in 2025 by $25.0 million related to contingent consideration payments. Contingent consideration paid in 2025 totaled $34.2 million, of which $9.2 million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of $25.0 million was paid out of cash flow from operating activities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For 2024, the $207.7 million of cash provided by operating activities resulted from $115.9 million of net income, plus adjustments for $76.6 million of non-cash items included in net income and plus $15.2 million of cash generated from changes in our operating assets and liabilities. Cash provided by operating activities increased in 2024 as compared to 2023 primarily due to the increase in net income adjusted for non-cash items as well as strong cash collections from customers. Cash provided by operating activities was negatively impacted in 2024 by $12.6 million related to contingent consideration payments. Contingent consideration paid in 2024 totaled $31.7 million of which $19.1 million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of $12.6 million was paid out of cash flow from operating activities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Additions to property and equipment</span><span style="font-family:'Verdana';"> were $6.8 million, $5.6 million and $6.1 million in 2025, 2024 and 2023, respectively. Additions to property and equipment increased in 2025 as compared to 2024 due to the timing of investments in computing equipment and software to support our network and continue to enhance our security infrastructure. Additions to property and equipment decreased in 2024 as compared to 2023 due to the timing of investments in computing equipment and software to support our network and continue to enhance our security infrastructure.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Acquisition of subsidiaries, net of cash acquired</span><span style="font-family:'Verdana';"> were $290.2 million, $142.7 million and $115.6 million in 2025, 2024 and 2023, respectively. Acquisitions in 2025 related to OCR, ASD, BoxTop, MCP and Sellercloud. Acquisitions in 2024 related to GroundCloud and Localz.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Payment of debt issuance costs </span><span style="font-family:'Verdana';">were $0.1 million, nominal and $1.1 million in 2025, 2024 and 2023, respectively, and relate to costs paid in amending the terms of our credit facility agreement.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">19</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Issuance of common shares, net of issuance costs </span><span style="font-family:'Verdana';">were $12.4 million, $9.3 million and $1.7 million in 2025, 2024 and 2023, respectively, and were primarily a result of the exercise of employee stock options.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Payment of withholding taxes on net share settlements </span><span style="font-family:'Verdana';">was $6.7 million, $4.9 million and nil for 2025, 2024 and 2023, respectively. For 2025 and 2024, the Company reduced issuances by 73,588 and 63,330 common shares, respectively, to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Payment of contingent consideration</span><span style="font-family:'Verdana';"> was $9.2 million, $19.1 million and $5.2 million in 2025, 2024 and 2023, respectively. Contingent consideration paid in 2025 totaled $34.2 million of which $9.2 million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of $25.0 million was paid out of cash flow from operating activities. Contingent consideration paid in 2024 totaled $31.7 million of which $19.1 million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of $12.6 million was paid out of cash flow from operating activities. In 2025, the contingent consideration paid related to the acquisitions of Supply Vision and NetCHB. In 2024, the contingent consideration paid related to the acquisitions of GreenMile, NetCHB and XPS.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><a id="_07361fec_c911_4d21_8f23_ebcc1d2b84a9"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="COMMITMENTSCONTINGENCIESANDGUARANTEES_46"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">COMMITMENTS, CONTINGENCIES AND GUARANTEES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">To facilitate a better understanding of our commitments, the following information is provided (in millions of dollars) in respect of our operating obligations as of January 31, 2025:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Less&#160;than</b><span style="font-family:'Verdana';">&#160;</span><b style="font-family:'Verdana';font-weight:bold;">1&#160;year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1-3&#160;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4-5&#160;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Operating lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 4.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 8.6</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Lease Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are committed under non-cancelable operating leases for buildings, vehicles and computer equipment with terms expiring at various dates through 2030. The undiscounted future minimum amounts payable under these lease agreements are presented in the table above.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred Share Unit (&#8220;DSU&#8221;) and Cash-settled Restricted Share Unit (&#8220;CRSU&#8221;) Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As discussed in Note 2 to the audited consolidated financial statements for 2024 included in this Annual Report, we maintain DSU and CRSU plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate amount for the unvested DSUs and CRSUs of nil and $1.2 million, respectively, at January 31, 2025. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2025, we had equity derivatives for 332,473 Descartes common shares and a DSU liability for 332,473 Descartes common shares, resulting in no net exposure arising from changes to our share price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate liability is not currently expected to have a material effect on our results of operations or financial position.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">20</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of Supply Vision, GroundCloud, MCP and Sellercloud, up to $67.5 million in cash may become payable if certain revenue performance targets are met in the remaining earn-out period, up to a maximum period of two years following the acquisition. A balance of $8.7 million is accrued related to the fair value of this contingent consideration as at January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#8220;Guarantees&#8221;. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third-party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">21</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_746a6d34_f8a4_49c1_9479_47d8b8ab57a9"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="OUTSTANDINGSHAREDATA_885645"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">OUTSTANDING SHARE DATA</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have an unlimited number of common shares authorized for issuance. As of March 5, 2025, we had 85,605,969 common shares issued and outstanding.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of March 5, 2025, there were 1,501,901 options issued and outstanding, and 2,177,290 options remaining available for grant under all stock option plans. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the annual meeting of shareholders held on June 13, 2024, the shareholders of the Company approved the addition of 1,765,840 units to the Company&#8217;s Performance and Restricted Share Unit Plan. As of March 5, 2025, there were 1,008,645 performance share units (&#8220;PSUs&#8221;) and 489,689 restricted share units (&#8220;RSUs&#8221;) issued and outstanding, with a potential of up to a further 282,570 PSUs being earned if maximum performance is achieved in respect of the outstanding PSU awards. Also, as of March 5, 2025, there were 1,946,449 units remaining available for grant under all performance and restricted share unit plans.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our board of directors has adopted a shareholder rights plan (the &#8220;Rights Plan&#8221;) to ensure the fair treatment of shareholders in connection with any take-over offer, and to provide our board of directors and shareholders with additional time to fully consider any unsolicited take-over bid. We did not adopt the Rights Plan in response to any specific proposal to acquire control of the Company. The Rights Plan was approved by the TSX and was originally approved by our shareholders on May 18, 2005 and took effect as of November 29, 2004. An amended and restated Rights Plan was ratified by shareholders at our annual shareholders&#8217; meeting held on June 15, 2023. The Rights Plan requires re-approval by the shareholders every three years. We understand that the Rights Plan is similar to plans adopted by other Canadian companies and approved by their shareholders.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><a id="_8b7290fa_dd64_48f7_9b61_ccc13f956805"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="APPLICATIONOFCRITICALACCOUNTINGPOLICIESA"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">APPLICATION OF CRITICAL ACCOUNTING POLICIES AND ESTIMATES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our consolidated financial statements and accompanying notes are prepared in accordance with GAAP. Preparing financial statements requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues and expenses. These estimates and assumptions are affected by management&#8217;s application of accounting policies. Estimates are deemed critical when a different estimate could have reasonably been used or where changes in the estimates are reasonably likely to occur from period to period and would materially impact our financial condition or results of operations. Our accounting policies are discussed in Note 2 to the audited consolidated financial statements for 2025 included in this Annual Report.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our management has discussed the development, selection and application of our critical accounting policies with the audit committee of the board of directors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following discusses the critical accounting estimates and assumptions that management has made under these policies and how they affect the amounts reported in the fiscal 2025 consolidated financial statements:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenue recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">22</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the standalone selling price (&#8220;SSP). SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract. Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Impairment of long-lived assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset groups is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. Our impairment analysis contains estimates due to the inherent uncertainty relating to forecasting long-term estimated cash flows and determining the ultimate useful lives of asset or asset groups. Actual results will differ, which could materially impact our impairment assessment.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Goodwill</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test for impairment of goodwill at least annually on October 31st of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Application of the goodwill impairment test requires judgment, including the identification of reporting units, assigning assets and liabilities to reporting units, assigning goodwill to reporting units, assessing qualitative factors and determining the fair value of each reporting unit. Judgments are required to estimate the fair value of reporting units and include estimating future cash flows, determining appropriate discount rates and other assumptions. Changes in these estimates and assumptions could materially affect the determination of fair value and/or goodwill impairment for each reporting unit.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Stock-based compensation plans</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">23</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Employee stock options generally vest over a five-year period starting from the grant date and expire seven years from the grant date. Non-employee directors&#8217; and officers&#8217; stock options generally have quarterly vesting over a three to five-year period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach and will be expensed to stock-based compensation expense over the vesting period. The ultimate number of PSUs that vest is based on the total shareholder return (&#8220;TSR&#8221;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">RSUs vest annually over a three-year period starting from the grant date and expire ten years from the grant date. We issue new shares from treasury upon the redemption of an RSU. RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have provided for income taxes based on information that is currently available to us. Tax filings are subject to audits, which could materially change the amount of deferred income tax assets and liabilities. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future years. These temporary differences are measured using enacted tax rates. We record deferred tax assets on our consolidated balance sheet for tax benefits that we currently expect to realize in future periods. Over recent years, we have determined that there was sufficient positive evidence such that it was more likely than not that we would utilize all or a portion of deferred tax assets in certain jurisdictions, to offset taxable income in future periods. This positive evidence included that we have earned cumulative income, after permanent differences, in each of these jurisdictions in at least the current and two preceding tax years. As such, over recent years, we have reduced our valuation allowances by amounts which represent the amount of tax loss carry forwards that we project will be used to offset taxable income in these jurisdictions over the foreseeable future. Any further change to increase or decrease the valuation allowance for the deferred tax assets would result in an income tax expense or income tax recovery, respectively, on the consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Business Combinations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In connection with business acquisitions that we have completed, we identify and estimate the fair value of net assets acquired, including certain identifiable intangible assets (other than goodwill) and liabilities assumed in the acquisitions. Any excess of the purchase price over the estimated fair value of the net assets acquired is assigned to goodwill. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Our initial allocation of purchase price is generally preliminary in nature and may not be final for up to one year from the date of acquisition. The </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">24</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">determination of the acquisition date fair value of the intangible assets acquired required us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates. Changes to these estimates and assumptions may result in material differences depending on the size of the acquisition completed</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome, including projected revenues, and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_9111ce4b_228c_480b_b188_3a3d40226bb9"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CHANGEININITIALADOPTIONOFACCOUNTINGPOLIC"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CHANGE IN / INITIAL ADOPTION OF ACCOUNTING POLICIES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Recently adopted accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In November 2023, the FASB issued Accounting Standards Update 2023-07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&#8221; (&#8220;ASU 2023-07&#8221;). The amendments in ASU 2023-07 improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant segment expenses. ASU 2023-07 was effective for fiscal years beginning after December 15, 2023, which was our fiscal year that began on February 1, 2024 (fiscal 2025) and interim periods within fiscal years beginning after December 15, 2024, which was our fiscal year beginning February 1, 2025 (fiscal 2026). The Company adopted ASU 2023-07 retrospectively in the fourth quarter of fiscal 2025. The adoption of this guidance did not have a material impact on our results of operations. For changes to our disclosures see our audited consolidated financial statements for 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In December 2023, the FASB issued Accounting Standards Update 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures&#8221; (&#8220;ASU 2023-09&#8221;). The amendments in ASU 2023-09 enhance transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. ASU 2023-09 is effective for annual periods beginning after December 15, 2024, which will be our fiscal year beginning February 1, 2025 (fiscal 2026). Early adoption is permitted for annual financial statements that have not yet been issued or made available for issuance. The Company expects to adopt this guidance in the fourth quarter of fiscal 2026. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In November 2024, the FASB issued Accounting Standards Update 2024-03, &#8220;Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#8221; and issued a subsequent amendment to the initial guidance in January 2025, collectively referred to as &#8220;ASU 2024-03&#8221;. The amendments in ASU 2024-03 require disaggregation of certain expense captions into specified categories in disclosures within the notes to financial statements, which is expected to enhance cost transparency and improve comparability. ASU 2024-03 is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods within annual reporting periods beginning after December 15, 2027. Early adoption is permitted. The Company expects to adopt this guidance in the fourth quarter of fiscal 2028. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">25</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_0609dcfd_2fb7_4dcb_a2aa_8dcee66194b2"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CONTROLSANDPROCEDURES_964546"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONTROLS AND PROCEDURES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management evaluated our disclosure controls and procedures (as defined in National Instrument 52-109 Certification of Disclosure in Issuers&#8217; Annual and Interim Filings) as of January 31, 2025. Based upon that evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">During the period beginning on November 1, 2024 and ended on January 31, 2025, no changes were made to the Company&#8217;s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Company&#8217;s internal control over financial reporting.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management assessed the effectiveness of our internal control over financial reporting (as defined in National Instrument 52-109 Certification of Disclosure in Issuers&#8217; Annual and Interim Filings) as of January 31, 2025, based on criteria established in &#8220;Internal Control &#8211; Integrated Framework&#8221; (2013), issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on the assessment, our Chief Executive Officer and Chief Financial Officer concluded that, as of January 31, 2025, our internal control over financial reporting was effective.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="_2e097d50_b4a3_4a52_8004_7186b7b5f7fc"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="TRENDSBUSINESSOUTLOOK_231983"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">TRENDS / BUSINESS OUTLOOK</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">This section discusses our outlook for fiscal 2026 and in general as of the date of this MD&amp;A and contains forward-looking statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Since the change in administration of the government of the United States of America on January 20, 2025, various executive orders have been discussed, communicated and/or issued. These have included the US&#8217;s imposition of tariffs ranging from 10% to 25% on almost all imports into the United States from Canada, Mexico and China, and additional future cumulative tariffs of 25% on all steel and aluminum imports into the United States. The US has also indicated potential future tariffs of 25% on all imports into the United States from the European Union and reaffirmed its intention to implement reciprocal tariffs on countries who have levied duties on goods exported from the US. The US has also explored the possibility of suspending the de minimis provision that exempts shipments under $800 from import duty. In response, China,</span> <span style="font-family:'Verdana';">Canada and Mexico have implemented or indicated their intention to implement a series of retaliatory tariffs against the United States. China has also expanded export controls on critical minerals used in the production of various technologies. The European Union has indicated its intention to implement retaliatory measures against the US should the proposed tariffs take effect. Changes in trade policies can have material impacts on our customers and the economy, including where and how goods are manufactured, distributed and shipped. The impact of any potential changes on the global economy in general and on our customers and our business specifically is uncertain at this time and the extent to which our business will be affected will depend on a variety of factors, many of which are outside of our control.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Rates of inflation have moderated in many economies after reaching recent peaks over the last two years but in other economies persist at rates higher than historically normal. As inflation returns to target rates in some countries, central banks have been easing monetary policy and lowering interest rates in response, but in many economies interest rates remain elevated. However, the imposition of tariffs and retaliatory tariffs by various countries may risk increasing inflation to the extent those additional charges are passed on to end consumers. Global growth remains slow and the outlook for the shipping industry, in particular, is uncertain. Geopolitical tensions, climate change, volatile fuel prices, trade wars, industrial action, </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">26</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">protectionist policies, and increased operational costs may present challenges to freedom of navigation and/or result in disruptions to global trade. These factors could adversely impact our business or the businesses of our customers and suppliers, which in turn could impact the level of usage and/or demand for our products and services and our resulting revenues. The impact of these factors on the global economy in general and on our business specifically is uncertain at this time and the extent to which our business will be affected will depend on a variety of factors, many of which are outside of our control.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">More generally, our business may be impacted from time to time by the cyclical and seasonal nature of particular modes of transportation and the freight market, as well as the cyclical and seasonal nature of the industries that such markets serve. Factors which may create cyclical fluctuations in such modes of transportation or the freight market in general include legal and regulatory requirements, timing of contract renewals between our customers and their own customers, seasonal-based tariffs,</span> <span style="font-family:'Verdana';">tariffs and retaliatory tariffs imposed as parts of trade disputes, vacation periods applicable to particular shipping or receiving nations, weather-related or global health events that impact shipping in particular geographies and amendments to international trade reshipments being processed, labor uncertainty or stoppages, adverse fluctuations in the volume of global shipments, or shipments in any particular mode of transportation, may adversely affect our revenues. Significant declines in shipment volumes could likely have a material adverse effect on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Industry consolidation, rapid technological change, growth of ecommerce and frequent new product introductions and enhancements continue to characterize the software and services industries &#8211; particularly for logistics management technology companies. Organizations are increasingly requiring greater levels of functionality and more sophisticated product offerings from their software and services providers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Increased importance is being placed on leveraging cloud-based technology to better manage logistics processes and to connect and collaborate with trading partners on a global basis, as well as to reuse and share supply chain data in order to accelerate time-to-value. Cloud-based technology also enables business networks to more easily unite and integrate services provided by a broad range of partners and technology alliances to extend functionality and further enhance collaboration between business communities. As a result, we believe there is a trend away from using manual and paper-based supply chain and logistics processes towards electronic processes powered by the exchange of electronic information between logistics and supply chain participants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Accordingly, we expect that our future success will be dependent upon our ability to enhance current products or develop and introduce new products offering enhanced performance and new functionality at competitive prices. In particular, we believe customers are looking for end-to-end solutions that combine a multi-modal, multi-process network with business document exchange and wireless mobile resource management applications with end-to-end global trade compliance, trade content and collaborative supply chain execution applications. These applications include freight bookings, contract and rate management, classification of goods for tariff and duty purposes, sanctioned party screening, customs filings and electronic shipment manifest processes, transportation management, routing and scheduling, purchase order to dock door processes, and inventory visibility.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We believe there is a continued acceptance of subscription pricing and SaaS business models in the markets we serve that provide lower up-front cost and easier-to-maintain alternatives than may be available through traditional perpetual license pricing models. In 2025, our services revenues comprised 91% of our total revenues, with the balance being license, professional services and other revenues. We expect that our focus in fiscal 2026 will remain on generating services revenues, primarily by promoting the use of our GLN (including customs compliance services) and the migration of customers using our legacy license-based products to our services-based architecture. We anticipate maintaining the flexibility to license our products to those customers who prefer to buy the products in that fashion and the composition of our revenues in any one quarter will be impacted by the buying preferences of our customers.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">27</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have significant contracts with our license customers for ongoing support and maintenance, as well as significant service contracts which provide us with recurring services revenues. After their initial term, our service contracts are generally renewable at a customer&#8217;s option, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services. In a typical year, based on our historic experience, we anticipate that over a one-year period we may lose approximately 4% to 6% of our aggregate annualized recurring revenues from the previous year in the ordinary course, excluding consideration of new customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We internally measure and manage our &#8220;baseline calibration&#8221;, which we define as the difference between our &#8220;baseline revenues&#8221; and &#8220;baseline operating expenses&#8221;. Each of these measures constitutes a &#8220;supplementary financial measure&#8221; under Canadian Securities Administrators&#8217; National Instrument 52-112 and does not have a directly comparable financial measure disclosed in our financial statements. We define our &#8220;baseline revenues&#8221; as our visible, recurring and contracted revenues. Baseline revenues are not a projection of anticipated total revenues for a period as they exclude any anticipated or expected new sales for a period beyond the date that the baseline revenues are measured. We define our &#8220;baseline operating expenses&#8221; as our total expenses less interest, investment and other income, taxes, depreciation and amortization, stock-based compensation (for which we include related costs and taxes), acquisition-related costs, contingent consideration and restructuring charges. Baseline operating expenses are not a projection of anticipated total expenses for a period as they exclude any expenses associated with anticipated or expected new sales for a period beyond the date that the baseline expenses are measured. Our baseline calibration is not a projection of net income for a period or adjusted earnings before interest, taxes, depreciation and amortization for a period as it excludes anticipated or expected new sales for a period beyond the date that the baseline calibration is measured, excludes any costs of goods sold or other expenses associated with such new sales, and excludes the expenses identified as excluded in the definition of &#8220;baseline operating expenses,&#8221; above. We calculate and disclose &#8220;baseline revenues,&#8221; &#8220;baseline operating expenses&#8221; and &#8220;baseline calibration&#8221; because management uses these metrics in determining its planned levels of expenditures for a period and we believe this information is useful to our investors. These metrics are estimated operating metrics and not projections, nor actual financial results, and are not indicative of current or future performance. As noted above, these metrics do not have any directly comparable financial measures disclosed in our financial statements. At February 1, 2025, using foreign exchange rates of $0.69 to CAD $1.00, $1.04 to EUR 1.00 and $1.24 to &#163;1.00, we estimated that our baseline revenues for the first quarter of 2026 are approximately $145.0 million and our baseline operating expenses are approximately $89.5 million. We consider this to be our baseline calibration of approximately $55.5 million for the first quarter of 2026, or approximately 38% of our baseline revenues as at February 1, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We estimate that aggregate amortization expense for existing intangible assets will be $71.2 million for 2026, $56.6 million for 2027, $49.4 million for 2028, $41.0 million for 2029, $29.3 million for 2030 and $73.8 million thereafter. Expected future amortization expense is based on the level of existing intangible assets at January 31, 2025, is subject to fluctuations in foreign exchange rates and assumes no future adjustments or impairment of existing intangible assets.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We anticipate that stock-based compensation expense for fiscal 2026 for grants outstanding as at January 31, 2025 will be approximately $15.1 million, subject to any necessary adjustments resulting from actual stock-based compensation forfeitures and fluctuations in foreign exchange rates. We anticipate that we&#8217;ll make additional grants of stock options in fiscal 2026 as part of our regular compensation practices.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We performed our annual goodwill impairment tests in accordance with ASC Topic 350, &#8220;Intangibles &#8211; Goodwill and Other&#8221; (&#8220;ASC Topic 350&#8221;) as at October 31, 2024 and determined that there was no evidence of impairment. We are currently scheduled to perform our next annual impairment test during the third quarter of fiscal 2026. We will continue to perform quarterly analyses of whether any event has occurred that would more likely than not reduce our enterprise value below our carrying amounts and, if so, we will perform a goodwill impairment test between the annual dates. The likelihood of any future impairment increases if our public market capitalization is adversely impacted by global economic, capital market or </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">28</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">other conditions for a sustained period of time. Any future impairment adjustment will be recognized as an expense in the period that such adjustment is identified.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In fiscal 2025, capital expenditures were $6.8 million or 1% of revenues, as we continue to invest in computer equipment and software to support our network and build out our infrastructure. We anticipate that we will incur approximately $6.0 to $7.0 million in capital expenditures in fiscal 2026 primarily related to investments in our network and security infrastructure.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We estimate that payments of contingent consideration for fiscal 2026 for earn - out arrangements accrued as at January 31, 2025 will be approximately $2.6 million, subject to any necessary adjustments resulting from the final earn - out calculations. The $2.6 million estimated to be paid relates to the portion of the earn - out arrangements accrued for at the time of acquisition and will be reflected in cash flow from financing activities.</span> <span style="font-family:'Verdana';">We update our estimates for the payment of contingent consideration on an ongoing basis as we gather further information about the performance of acquired companies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We conduct business in a variety of foreign currencies and, as a result, our foreign operations are subject to foreign exchange fluctuations. Our businesses operate in their local currency environment and use their local currency as their functional currency. Assets, including cash, and liabilities of foreign operations are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses of foreign operations are translated using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#8217; equity.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Transactions incurred in currencies other than the functional currency are converted to the functional currency at the transaction date. All foreign currency transaction gains and losses are included in net income. We currently have no specific hedging program in place to address fluctuations in international currency exchange rates. In addition, we can make no accurate prediction of what will happen with international currency exchange rates going forward.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">There can be varied impacts on our results of operations as a consequence of movements in international currency exchange rates. In the fourth quarter of fiscal 2025, approximately 72% of our revenues were in US dollars, 11% in euro, 6% in Canadian dollars, 7% in British pound sterling, and the balance in mixed currencies. For that same period, approximately 54% of our operating expenses were in US dollars, 13% in euro, 19% in Canadian dollars, 4% in British pound sterling, and the balance in mixed currencies. With this distribution, we generally expect that our revenues will be negatively impacted when the US dollar strengthens compared to these foreign currencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">However, the impact from movements in foreign exchange rates on our other aspects of our results of operations are more varied. Generally, if the US dollar strengthens against the Canadian dollar, the decrease in our expenses will be greater than the decrease in our revenue, resulting in an improvement in our results of operations. However, if the US dollar were to strengthen against the British pound or euro, the decrease in expenses would not be as large as the decrease in revenue, resulting in a weakening of our results of operations. We will continue to monitor the impact of foreign exchange on our operating results as changes in foreign exchange rates may have a significant negative impact on our revenue and results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our tax expense for a period is difficult to predict as it depends on many factors, including the actual jurisdictions in which income is earned, the tax rates in those jurisdictions, the amount of deferred tax assets relating to the jurisdictions and the valuation allowances relating to those tax assets. We can provide no assurance as to the timing or amounts of any income tax expense or recovery, nor can we provide any assurance that our current valuation allowance for deferred tax assets will not need to be adjusted further.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We experienced an effective tax rate of approximately 25% in fiscal 2025, which is within our expected range of 25% to 30%. We currently anticipate an effective tax rate of between 24% to 28% for fiscal 2026.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">29</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We intend to continue to actively explore business combinations to add complementary services, products and customers to our existing businesses. We also intend to continue to focus our acquisition activities on companies that are targeting the same customers as us and processing similar data and, to that end, we listen to our customers&#8217; suggestions as they relate to acquisition opportunities. Depending on the size and scope of any business combination, or series of business combinations, we may choose or need to use our existing credit facility or need to raise additional debt or equity capital. However, there can be no assurance that we will be able to undertake such a financing transaction. If we use debt in connection with acquisition activity, we will incur additional interest expense from the date of the draw under such facility. Considering the balance of the credit facility as at January 31, 2025, and subject to any further draws or repayments on the credit facility, we anticipate that interest expense will be approximately $1.1 million in fiscal 2026, which includes debt standby charges as well as the amortization of deferred financing charges.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Certain future commitments are set out above in the section of this MD&amp;A called &#8220;Commitments, Contingencies and Guarantees&#8221;. We believe that we have sufficient liquidity to fund our current operating and working capital requirements, including the payment of these commitments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><a id="_95b36342_c277_4084_b58e_a5b2f5b580e3"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CERTAINFACTORSTHATMAYAFFECTFUTURERESULTS"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CERTAIN FACTORS THAT MAY AFFECT FUTURE RESULTS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Any investment in us will be subject to risks inherent to our business. Before making an investment decision, you should carefully consider the risks described below together with all other information included in this report. The risks and uncertainties described below are not the only ones facing us. Additional risks and uncertainties that we are not aware of or have not focused on, or that we currently deem immaterial, may also impair our business operations. This report is qualified in its entirety by these risk factors.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">If any of the risks actually occur, they could materially adversely affect our business, financial condition, liquidity or results of operations. In that case, the trading price of our securities could decline and you may lose all or part of your investment.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">System or network failures, information security breaches or other cyber-security threats in connection with our business, services and/or products could reduce our sales, impair our reputation, increase costs or result in liability claims, and seriously harm our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We rely on information technology networks and systems to process, transmit and store electronic information. Any disruption to our business, services and/or products, our own information systems or communications networks or those of third-party providers on which we rely as part of our own product offerings could result in the inability of our customers to receive our products for an indeterminate period of time. Our ability to deliver our products and services depends on the development and maintenance of hardware and communications infrastructure (including internet) by third parties. This includes maintenance of reliable networks with the necessary security, speed, data capacity and bandwidth. While our services are designed to operate without interruption, we have experienced, and may in the future experience, interruptions and delays in services and availability from time to time. In the event of a catastrophic event with respect to one or more of our systems, we may experience an extended period of system unavailability, which could negatively impact our relationship with customers. Our services and products may not function properly for reasons which may include, but are not limited to, the following:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">System or network failure;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Software errors, failures and crashes;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Interruption in the supply of power;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Virus proliferation or malware;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Communications failures;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Information or infrastructure security breaches;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Insufficient investment in infrastructure;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Earthquakes, fires, floods, natural disasters, or other force majeure events outside our control; and</span></td></tr></table></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">30</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Acts of war, sabotage, cyber-attacks, denial-of-service attacks and/or terrorism.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In addition, any disruption to the availability of customer information, or any compromise to the integrity or confidentiality of customer information in our systems or networks, or the systems or networks of third parties on which we rely (including those third parties&#8217; solutions that are used to detect and protect against such disruption and compromise), could result in our customers being unable to effectively use our products or services or being forced to take mitigating actions to protect their information. Back-up and redundant systems may be insufficient or may fail and result in a disruption of availability of our products or services to our customers or the integrity or availability of our customers&#8217; information.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Some jurisdictions have enacted laws requiring companies to notify individuals of data security breaches involving certain types of personal data and in some cases our agreements with certain customers require us to notify them in the event of a security incident. Such mandatory disclosures could lead to negative publicity and may cause our current and prospective customers to lose confidence in the effectiveness of our data security measures. Moreover, if a high-profile security breach occurs with respect to another SaaS provider, customers may lose trust in the security of the SaaS business model generally, which could adversely impact our ability to retain existing customers or attract new ones.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Any actual or perceived threat of disruption to our services or any compromise of customer information could impair our reputation and cause us to lose customers or revenue, or face litigation, necessitate customer service or repair work that would involve substantial costs and distract management from operating our business. Despite the implementation of advanced threat protection, information and network security measures and disaster recovery plans, our systems and those of third parties on which we rely may be subjected to deficiencies, vulnerabilities and security risks of increasing frequency, scope and potential harm. The continued use and/or development of emerging technologies, such as artificial intelligence, could increase our exposure to information security breaches or other cyber-security threats by potentially enhancing the capabilities of third parties to breach our network or the networks of our third-party providers, and disrupt our services. If we are unable (or are perceived as being unable) to prevent, or promptly identify and remedy, such outages and breaches, our operations may be disrupted, our business reputation could be adversely affected, and there could be a negative impact on our financial condition and results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">General economic conditions may affect our results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Demand for our products depends in large part upon the level of capital and operating expenditures by many of our customers. Decreased capital and operational spending could have a material adverse effect on the demand for our products and our business, results of operations, cash flow and overall financial condition. Decreased spending from customers could be caused by pessimism relating to particular economic indicators, such as increases in inflation and interest rates, or from economic policies such as increases in trade tariffs or duties. Decreased spending could also be caused by the impact of geopolitical events, such as the Russia-Ukraine Conflict, or the Israel-Hamas Conflict, or catastrophic events. These types of economic indicators and events may also cause disruptions in the financial markets. Disruptions in the financial markets may adversely impact the availability of credit already arranged and the availability and cost of credit in the future, which could result in the delay or cancellation of projects or capital programs on which our business depends. In addition, disruptions in the financial markets may also have an adverse impact on regional economies or the world economy, which could negatively impact the capital and operating expenditures of our customers. Decreased capital and operational spending or disruptions in the financial markets could be caused by inflationary pressures, acts of war, or the outbreak of a contagious illness. Any of these conditions may reduce the willingness or ability of our customers and prospective customers to commit funds to purchase our products and services, or their ability to pay for our products and services after purchase.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">31</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Catastrophic events, armed conflict, wars, climate change and its effects, including natural disasters and severe weather, disease and similar events could disrupt the demand of our customers for our products and services and our ability to operate our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our business may be negatively impacted to varying degrees by a number of events which are beyond our control, including acts of war, armed conflicts, energy blackouts, pandemics (or other public health crises), terrorist attacks, earthquakes, climate change and its effects, including hurricanes, tornados, fires, floods, ice storms or other natural or manmade catastrophes. We cannot be sure that our emergency preparedness or the preparedness of our customers, including business continuity planning, to mitigate risks will be effective since such events can evolve very rapidly, and their impacts can be difficult to predict. As such, there can be no assurance that in the event of such a catastrophe that the operations and ability to carry on business of us or our customers will not be disrupted. The occurrence of such events may not release us from performing our obligations to third parties. A catastrophic event, including an outbreak of infectious disease, or a similar health threat, or fear of any of the foregoing, could adversely impact us, our customers and our investments. In addition, liquidity and volatility, credit availability and market and financial conditions, generally could change at any time as a result of any of these events. Any of these events in isolation or in combination, could have a material negative impact on our performance, financial condition, results of operations and cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may have difficulties identifying, successfully integrating or maintaining or growing our acquired businesses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Businesses that we acquire may sell products or services that we have limited experience operating or managing. We may experience unanticipated challenges or difficulties identifying suitable acquisition candidates, integrating their businesses into our company, maintaining these businesses at their current levels or growing these businesses. Factors that may impair our ability to identify, successfully integrate, maintain or grow acquired businesses may include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Challenges identifying suitable businesses to buy and negotiating the acquisition of those businesses on acceptable terms;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Challenges completing the acquisitions within our expected time frames and budgets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Challenges in integrating acquired businesses with our business;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Loss of customers of the acquired business;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Loss of key personnel from the acquired business, such as former executive officers or key technical personnel;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Non-compatible business cultures;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">For regulatory compliance businesses, changes in government regulations impacting electronic regulatory filings or import/export compliance, including changes in which government agencies are responsible for gathering import and export information;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Difficulties in gaining necessary approvals in international markets to expand acquired businesses as contemplated;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our inability to obtain or maintain necessary security clearances to provide international shipment management services;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our failure to make appropriate capital investments in infrastructure to facilitate growth; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors identified in this report.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We may fail to properly respond to any of these risks, which may have a material adverse effect on our business results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Investments in acquisitions and other business initiatives involve a number of risks that could harm our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have in the past acquired, and in the future, expect to seek to acquire, additional products, services, customers, technologies and businesses that we believe are complementary to ours. We are unable to predict whether or when we will be able to identify any appropriate products, technologies or businesses for acquisition, or the likelihood that any potential acquisition will be available on terms acceptable to us or will be completed. We also, from time to time, take on investments in other business initiatives, such as the implementation of new systems.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">32</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Acquisitions and other business initiatives involve a number of risks, including: substantial investment of funds, diversion of management&#8217;s attention from current operations; additional demands on resources, systems, procedures and controls; and disruption of our ongoing business. Acquisitions specifically involve risks, including: difficulties in integrating and retaining all or part of the acquired business, its customers and its personnel; assumption of disclosed and undisclosed liabilities; dealing with unfamiliar laws, customs and practices in foreign jurisdictions; and the effectiveness of the acquired company&#8217;s internal controls and procedures. In addition, we may not identify all risks or fully assess risks identified in connection with an investment. As well, by investing in such initiatives, we may deplete our cash resources or dilute our shareholder base by issuing additional shares. Furthermore, for acquisitions, there is a risk that our valuation assumptions, customer retention expectations and our models for an acquired product or business may be erroneous or inappropriate due to foreseen or unforeseen circumstances and thereby cause us to overvalue an acquisition target. There is also a risk that the contemplated benefits of an acquisition or other investment may not materialize as planned or may not materialize within the time period or to the extent anticipated. The individual or combined effect of these risks could have a material adverse effect on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If we fail to attract and retain key personnel, it would adversely affect our ability to develop and effectively manage our business and inflationary pressures in compensation could impact the cost structure of our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our performance is substantially dependent on the performance of our highly qualified management, technical expertise, and sales and marketing personnel, which we regard as key individuals to our business. Significant competition exists for management and skilled personnel and as a result of that competition we are seeing wage and labor cost escalation in various areas and levels within our workforce. Our success is highly dependent on our ability to identify, hire, train, motivate, promote, and retain key individuals. In responding to inflationary wage pressure to retain or attract key individuals, we could see increases in our operating costs that outpace our ability to grow revenues. If we fail to cross train key employees, particularly those with specialized knowledge it could impair our ability to provide consistent and uninterrupted service to our customers. If we are not able to attract, retain or establish an effective succession planning program for key individuals it could have a material adverse effect on our business, results of operations, financial condition and the price of our common shares.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have in the past, and may in the future, make changes to our executive management team or board of directors. There can be no assurance that any such changes and the resulting transition will not have a material adverse effect on our business, results of operations, financial condition and the price of our common shares.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Changes in government filing or screening requirements for global trade may adversely impact our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our regulatory compliance services help our customers comply with government filing and screening requirements relating to global trade. The services that we offer may be impacted, from time to time, by changes in these requirements, including potential future changes as a consequence of changes in cross-border trade agreements, such as the United States-Mexico-Canada Agreement, or from changes in government, such as the recent change in the elected governing party of the United States government. In addition, and more generally, changes in requirements that impact electronic regulatory filings or import/export compliance, including changes adding or reducing filing requirements, changes in enforcement practices or changes in the government agency responsible for such requirements could adversely impact our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Disruptions in the movement of freight could negatively affect our revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our business is highly dependent on the movement of freight from one point to another since we generate transaction revenues as freight is moved by, to or from our customers. If there are disruptions in the movement of freight, proper reporting or the overall volume of international shipments, whether as a result of labor disputes, weather or natural disasters, acts of war, terrorist events, political instability, changes in cross border trade agreements, contagious illness outbreaks, or otherwise, then the traffic volume on our Global Logistics Network will be impacted and our revenues will be adversely affected. As these types of </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">33</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">freight disruptions are generally unpredictable, there can be no assurance that our business, results of operations and financial condition will not be adversely affected by such events.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our existing customers might cancel contracts with us, fail to renew contracts on their renewal dates, and/or fail to purchase additional services and products, and we may be unable to attract new customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We depend on our installed customer base for a significant portion of our revenues. We have significant contracts with our license customers for ongoing support and maintenance, as well as significant service contracts that provide recurring services revenues to us. In addition, our installed customer base has historically generated additional new license and services revenues for us. Service contracts are generally renewable at a customer&#8217;s option and/or subject to cancellation rights, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">If our customers fail to renew their service contracts, fail to purchase additional services or products, or we are unable to attract new customers, then our revenues could decrease and our operating results could be adversely affected. Factors influencing such contract terminations could include changes in the financial circumstances of our customers, dissatisfaction with our products or services, our retirement or lack of support for our legacy products and services, our customers selecting or building alternate technologies to replace us, the cost of our products and services as compared to the cost of products and services offered by our competitors, acceptance of future price increases, our ability to attract, hire and maintain qualified personnel to meet customer needs, consolidating activities in the market, and changes in our customers&#8217; business or in regulation impacting our customers&#8217; business that may no longer necessitate the use of our products or services, general economic or market conditions, or other reasons. Further, our customers could delay or terminate implementations or use of our services and products or be reluctant to migrate to new products. Such customers will not generate the revenues we may have anticipated within the timelines anticipated, if at all, and may be less likely to invest in additional services or products from us in the future. We may not be able to adjust our expense levels quickly enough to account for any such revenue losses. In addition, loss of one or more of our key customers could adversely impact our competitive position in the marketplace and hurt our credibility and ability to attract new customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our success depends on our ability to continue to innovate and to create new solutions and enhancements to our existing products</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We may not be able to develop and introduce new solutions and enhancements to our existing products that respond to new technologies or shipment regulations on a timely basis. If we are unable to develop and sell new products and new features for our existing products that keep pace with rapid technological and regulatory change, such as within the emerging area of artificial intelligence, as well as developments in the transportation logistics industry, our business, results of operations and financial condition could be adversely affected. We intend to continue to invest significant resources in research and development to enhance our existing products and services and introduce new high-quality products that customers will want. If we are unable to predict or quickly react to user preferences or changes in the transportation logistics industry, or its regulatory requirements, or if we are unable to modify our products and services on a timely basis or to effectively bring new products to market, our sales may suffer.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In addition, we may experience difficulties with software or hardware development, design, integration with third-party software or hardware, or marketing that could delay or prevent our introduction, deployment or implementation of new solutions and enhancements. The introduction of new solutions by competitors, the emergence of new industry standards or the development of entirely new technologies to replace existing offerings could render our existing or future solutions obsolete.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We may not have sufficient resources to make the necessary investments in software development and our technical infrastructure, and we may experience difficulties that could delay or prevent the successful development, introduction or marketing of new products or enhancements. In addition, our products or enhancements may not meet increasingly complex customer requirements or achieve market acceptance at the rate we expect, or at all. Any failure by us to anticipate or respond adequately to technological </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">34</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">advancements, customer requirements and changing industry standards, or any significant delays in the development, introduction or availability of new products or enhancements, could undermine our current market position and negatively impact our business, results of operations or financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may not remain competitive. Increased competition could seriously harm our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The market for supply chain technology is highly competitive and subject to rapid technological change. We expect that competition will increase in the future. To maintain and improve our competitive position, we must continue to develop and introduce in a timely and cost-effective manner new products, product features and services to keep pace with our competitors. We currently face competition from a large number of specific market entrants, some of which are focused on specific industries, geographic regions or other components of markets we operate in.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Current and potential competitors include supply chain application software vendors, customers that undertake internal software development efforts, value-added networks and business document exchanges, enterprise resource planning software vendors, regulatory filing companies, trade data vendors and general business application software vendors. Many of our current and potential competitors may have one or more of the following relative advantages:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Established relationships with existing customers or prospects that we are targeting;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Superior product functionality and industry-specific expertise;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Broader range of products to offer and better product life cycle management;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Larger installed base of customers;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Greater financial, technical, marketing, sales, distribution and other resources;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Better performance;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Lower cost structure and more profitable operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Greater investment in infrastructure;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Greater worldwide presence;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Early adoption of, or adaptation to changes in, technology, including artificial intelligence; or</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Longer operating history; and/or greater name recognition.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Further, current and potential competitors have established, or may establish, cooperative relationships and business combinations among themselves or with third parties to enhance their products, which may result in increased competition. In addition, we expect to experience increasing price competition and competition surrounding other commercial terms as we compete for market share. In particular, larger competitors or competitors with a broader range of services and products may bundle their products, rendering our products more expensive and/or less functional. As a result of these and other factors, we may be unable to compete successfully with our existing or new competitors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Emergence or increased adoption of alternative sources for trade data may adversely impact our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">With recent acquisitions in the area of supplying trade data and content, an increasing portion of our business relates to the supply of trade data and content that is often used by our customers in other systems, such as enterprise resource planning systems. Emergence or increased adoption of alternative sources of this data and content could have an adverse impact on our customers&#8217; needs to obtain this data and content from us and/or the need for certain of the third-party system vendors in this field to refer customers to us for this data and content, each of which could adversely impact upon the revenues and income we generate from these areas of our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If we need additional capital in the future and are unable to obtain it or can only obtain it on unfavorable terms, our operations may be adversely affected, and the market price for our securities could decline.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Historically, we have financed our operations primarily through cash flows from our operations, the sale of our equity securities and borrowings under our credit facility. In addition to our current cash and available debt facilities, we may need to raise additional debt or equity capital to repay existing debt, fund expansion of our operations, to enhance our services and products, or to acquire or invest in complementary products, </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">35</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">services, businesses or technologies. However, there can be no assurance that we will be able to undertake incremental financing transactions. If we raise additional funds through further issuances of convertible debt or equity securities, our existing shareholders could suffer significant dilution and any new equity securities we issue could have rights, preferences and privileges superior to those attaching to our common shares. Our current credit facility contains, and any debt financing secured by us in the future could contain restrictive covenants relating to our capital-raising activities and other financial and operational matters, which may make it more difficult for us to obtain additional capital and to pursue business opportunities, including potential acquisitions. In addition, we may not be able to obtain additional financing on terms favorable to us, if at all. If adequate funds are not available on terms favorable or at all, our operations and growth strategy may be adversely affected and the market price for our common shares could decline.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Changes in the value of the U.S. dollar, as compared to the currencies of other countries where we transact business, could harm our operating results and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Historically, the largest percentage of our revenues has been denominated in U.S. dollars. However, the majority of our international expenses, including the wages of our non-U.S. employees and certain key supply agreements, have been denominated in Canadian dollars, British pounds, euros and other foreign currencies. Therefore, changes in the value of the U.S. dollar as compared to the Canadian dollar, the British pound, the euro and other foreign currencies may materially affect our operating results. We generally have not implemented hedging programs to mitigate our exposure to currency fluctuations affecting international accounts receivable, cash balances and inter-company accounts. We also have not hedged our exposure to currency fluctuations affecting future international revenues and expenses and other commitments. Accordingly, currency exchange rate fluctuations have caused, and may continue to cause, variability in our foreign currency denominated revenue streams, expenses, and our cost to settle foreign currency denominated liabilities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may have exposure to greater than anticipated tax liabilities or expenses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to income and non-income taxes in various jurisdictions, our tax structure is subject to review by both domestic and foreign taxation authorities and we currently have tax audits open in a number of jurisdictions in which we operate. On a quarterly basis, we assess the status of these audits and the potential for adverse outcomes to determine whether a provision for income and other taxes is appropriate. The timing of the resolution of income tax audits is highly uncertain, and the amounts ultimately paid, if any, upon resolution of the issues raised by the taxing authorities may differ from any amounts that we accrue from time to time. The actual amount of any change could vary significantly depending on the ultimate timing and nature of any settlements. We cannot currently provide an estimate of the range of possible outcomes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The determination of our worldwide provision for income taxes and other tax liabilities requires judgment. In the ordinary course of a global business, there are many transactions and calculations where the ultimate tax outcome is uncertain. Any audit of our tax filings could materially change the amount of current and deferred income tax assets and liabilities. We have recorded a valuation allowance against a portion of our net deferred tax assets. If we achieve a consistent level of profitability, the likelihood of further reducing our deferred tax valuation allowance for some portion of the losses incurred in prior periods in one of our jurisdictions will increase. We calculate our current and deferred tax provision based on estimates and assumptions that could differ from the actual results reflected in income tax returns filed during subsequent years. Adjustments based on filed returns are generally recorded in the period when the tax returns are filed and the global tax implications are known. Our estimate of the potential outcome for any uncertain tax issue is based on a number of assumptions. Any further changes to the valuation allowance for our deferred tax assets would also result in an income tax recovery or income tax expense, as applicable, on the consolidated statements of operations in the period in which the valuation allowance is changed.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">36</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Changes to earnings resulting from past acquisitions may adversely affect our operating results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Under ASC Topic 805, &#8220;Business Combinations&#8221;, we allocate the total purchase price to an acquired company&#8217;s net tangible assets, intangible assets and in-process research and development based on their values as of the date of the acquisition (including certain assets and liabilities that are recorded at fair value) and record the excess of the purchase price over those values as goodwill. Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable but which are inherently uncertain. After we complete an acquisition, the following factors, among others, could result in material charges that would adversely affect our operating results and may adversely affect our cash flows:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Impairment of goodwill or intangible assets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">A reduction in the useful lives of intangible assets acquired;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Identification of assumed contingent liabilities after we finalize the purchase price allocation period;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Charges to our operating results to eliminate certain pre-merger activities that duplicate those of the acquired company or to reduce our cost structure; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Charges to our operating results resulting from revised estimates to restructure an acquired company&#8217;s operations after we finalize the purchase price allocation period.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Routine charges to our operating results associated with acquisitions include amortization of intangible assets, acquisition-related costs and restructuring charges. Acquisition-related costs primarily include retention bonuses, advisory services, brokerage services and administrative costs with respect to completed and prospective acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We expect to continue to incur additional costs associated with combining the operations of our acquired companies, which may be substantial. Additional costs may include costs of employee redeployment, relocation and retention, including salary increases or bonuses, accelerated stock-based compensation expenses and severance payments, reorganization or closure of facilities, taxes, and termination of contracts that provide redundant or conflicting services. These costs would be accounted for as expenses and would decrease our net income and earnings per share for the periods in which those adjustments are made.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">As we continue to increase our international operations we increase our exposure to international business risks that could cause our operating results to suffer.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">While our headquarters are in Canada, we currently have direct operations in the U.S., EMEA, Asia Pacific and South American regions. We anticipate that these international operations will continue to require significant management attention and financial resources to localize our services and products for delivery in these markets, to develop compliance expertise relating to international regulatory agencies, and to develop direct and indirect sales and support channels in those markets. We face a number of risks associated with conducting our business internationally that could negatively impact our operating results. These risks include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The risk of continued or increased limitations of travel advisories or travel restrictions related to the outbreak of contagious illnesses, could impact our ability to operate in certain markets and/or manage our operations in those markets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Longer collection time from foreign clients, particularly in the EMEA region and the Asia Pacific region;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Difficulty in repatriating cash from certain foreign jurisdictions;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Language barriers, conflicting international business practices, and other difficulties related to the management and administration of a global business;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Increased management, travel, infrastructure and legal compliance costs associated with having international operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Difficulties and costs of staffing and managing geographically disparate direct and indirect operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Volatility or fluctuations in foreign currency and tariff rates;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Multiple, and possibly overlapping, tax structures;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Complying with complicated and widely differing global laws and regulations in areas such as employment, tax, privacy and data protection;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Trade restrictions;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Enhanced security procedures and requirements relating to certain jurisdictions;</span></td></tr></table></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">37</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The need to consider characteristics unique to technology systems used internationally;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Economic or political instability in some markets; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors set out herein.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Concerns about the environmental impacts of greenhouse gas emissions, global climate change, and any other environmental, social and governance matters may result in environmental taxes, charges, regulatory schemes, assessments or penalties, which could restrict or negatively impact our operations or reduce our profitability.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The impacts of human activity on global climate change have attracted considerable public and scientific attention, as well as the attention of the U.S. and other governments. Efforts are being made to reduce greenhouse gas emissions and energy consumption, including those from automobiles and other modes of transportation. The added cost of any environmental regulation, taxes, charges, assessments or penalties levied or imposed on our customers in light of these efforts could result in additional costs for our customers, which could lead them to reduce use of our services. There are also a number of legislative and social, environmental and governance regulatory initiatives internationally that could restrict or negatively impact our operations or increase our costs. Additionally, environmental regulation, taxes, charges, assessments or penalties could be levied or imposed directly on us. Any enactment of laws or passage of regulations regarding greenhouse gas emissions, or any other environmental, social and governance matters, by Canada, the U.S., or any other jurisdiction we conduct our business in, could adversely affect our operations and financial results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">From time to time, we may be subject to litigation or dispute resolution that could result in significant costs to us and damage to our reputation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">From time to time, we may be subject to litigation or dispute resolution relating to any number or type of claims, including claims for damages related to undetected errors or malfunctions of our services and products or their deployment, claims related to previously-completed acquisition transactions or claims relating to applicable securities laws. Litigation may seriously harm our business because of the costs of defending the lawsuit, diversion of employees&#8217; time and attention and potential damage to our reputation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Further, our services and products are complex and often implemented by our customers to interact with third-party technology or networks. Claims may be made against us for damages properly attributable to those third-party technologies or networks, regardless of our lack of responsibility for any failure resulting in a loss, even if our services and products perform in accordance with their functional specifications. We may also have disputes with key suppliers for damages incurred which, depending on resolution of the disputes, could impact the ongoing quality, price or availability of the services or products we procure from the supplier. Limitation of liability provisions in certain third-party contracts may not be enforceable under the laws of some jurisdictions. As a result, we could be required to pay substantial amounts of damages in settlement or upon the determination of any of these types of claims and incur damage to our reputation and products. The likelihood of such claims and the amount of damages we may be required to pay may increase as our customers increasingly use our services and products for critical business functions, or rely on our services and products as the systems of record to store data for use by other customer applications. Our insurance may not cover potential claims or may not be adequate to cover all costs incurred in defense of potential claims or to indemnify us for all liability that may be imposed. A claim brought against us that is uninsured or underinsured could result in unanticipated costs, thereby harming our operating results and leading analysts or potential investors to lower their expectations of our performance, which could reduce the trading price of our common shares.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Increases in fuel prices, driver shortages and other increased transportation costs may have an adverse effect on the businesses of our customers resulting in them spending less money with us.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our customers are all involved, directly or indirectly, in the delivery of goods from one point to another, particularly transportation providers and freight forwarders. As the costs of these deliveries become more expensive, whether as a result of increases in fuel costs or otherwise, our customers may have fewer funds available to spend on our products and services. There can be no assurance that these companies will be </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">38</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">able to allocate sufficient funds to use our products and services. In addition, rising fuel costs or driver shortages may cause global or geographic-specific reductions in the number of shipments being made, thereby impacting the number of transactions being processed by our Global Logistics Network and our corresponding network revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may not be able to compensate for downward pricing pressure on certain products and services by increased volumes of transactions or increased prices elsewhere in our business, ultimately resulting in lower revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Some of our products and services are sold to industries where there is downward pricing pressure on the particular product or service due to competition, general industry conditions or other causes. If we cannot offset any such downward pricing pressure, then the particular customer may generate less revenue for our business or we may have less aggregate revenue. This could have an adverse impact on our operating results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our success and ability to compete depend upon our ability to secure and protect patents, trademarks and other proprietary rights.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We consider certain aspects of our internal operations, products, services and related documentation to be proprietary, and we primarily rely on a combination of patent, copyright, trademark and trade secret laws and other measures to protect our proprietary rights. Patent applications or issued patents, as well as trademark, copyright, and trade secret rights may not provide adequate protection or competitive advantage and may require significant resources to obtain and defend. We will also not be able to protect our intellectual property if we are unable to enforce our rights or if we do not detect unauthorized use of our intellectual property. Despite our precautions, it may be possible for unauthorized third parties to copy our products and use information that we regard as proprietary to create products and services that compete with ours. We also rely on contractual restrictions in our agreements with customers, employees, outsourced developers and others to protect our intellectual property rights. There can be no assurance that these agreements will not be breached, that we will have adequate remedies for any breach, or that our patents, copyrights, trademarks or trade secrets will not otherwise become known. Through an escrow arrangement, we have granted some of our customers a contingent future right to use our source code for software products solely for their internal maintenance services. If our source code is accessed through an escrow, the likelihood of misappropriation or other misuse of our intellectual property may increase.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Moreover, the laws of some countries do not protect proprietary intellectual property rights as effectively as do the laws of the U.S. and Canada. Protecting and defending our intellectual property rights could be costly regardless of venue. In order to protect our intellectual property rights, we may be required to spend significant resources to monitor and protect these rights. The Company is currently involved in, and expects to remain involved in, certain litigation to protect its intellectual property from infringement by third parties. In addition, further litigation may be necessary in the future to enforce our intellectual property rights, to protect our trade secrets, to determine the validity and scope of the intellectual property rights of others or to defend against claims of infringement or invalidity. Litigation brought to protect and enforce our intellectual property rights could be costly, time consuming and distracting to management and could result in the impairment or loss of portions of our intellectual property. Furthermore, our efforts to enforce our intellectual property rights may be met with defenses, counterclaims and countersuits attacking the validity and enforceability of our intellectual property rights and/or exposing us to claims for damages in any related counterclaims or countersuits. Our inability to protect our proprietary technology against unauthorized copying or use, as well as any costly litigation or diversion of our management&#8217;s attention and resources, could delay further sales or the implementation of our solutions, impair the functionality of our solutions, delay introductions of new solutions, result in our substituting inferior or more costly technologies into our solutions, or injure our reputation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We are dependent on certain key vendors for the availability of hardware devices, which could impede our development and expansion.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We currently have relationships with a small number of hardware device vendors over which we have no operational or financial control and no influence in how these vendors conduct their businesses. Suppliers </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">39</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">of hardware devices could among other things, extend delivery times, raise prices and limit supply due to their own shortages and business requirements. Interruption in the supply of equipment from these vendors could delay our ability to maintain, grow and expand our telematics solutions business and those areas of our business that interact with telematics units. If our relationships with any of these unit vendors were to terminate, there is no guarantee that our remaining unit vendors would be able to handle the increased equipment supply required to maintain and grow our expansive networks at our desired rates. There is also no guarantee that business relationships with other key unit vendors could be entered into on terms desirable or favorable to us, if at all. Fewer key vendors might mean that existing or potential customers are unable to meaningfully communicate using our Global Logistics Network, which may cause existing and potential customers to move to competitors&#8217; products. Such equipment supply issues could adversely affect our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">The general cyclical and seasonal nature of the freight market may have a material adverse effect on our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our business may be impacted from time to time by the general cyclical and seasonal nature of particular modes of transportation and the freight market in general, as well as the cyclical and seasonal nature of the industries that such markets serve. Factors which may create cyclical fluctuations in such modes of transportation or the freight market in general include legal and regulatory requirements, timing of contract renewals between our customers and their own customers, seasonal-based tariffs, vacation periods applicable to particular shipping or receiving nations, weather-related events that impact shipping in particular geographies and amendments to international trade agreements. Since some of our revenues from particular products and services are tied to the volume of shipments being processed, adverse fluctuations in the volume of global shipments or shipments in any particular mode of transportation may adversely affect our revenues. Declines in shipment volumes would likely have a material adverse effect on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If we are unable to generate broad market acceptance of our services, products and pricing, serious harm could result to our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We currently derive substantially all of our revenues from our federated network and global logistics technology solutions and expect to do so in the future. Broad market acceptance of these types of services and products, and their related pricing, is therefore critical to our future success. The demand for, and market acceptance of, our services and products is subject to a high level of uncertainty. Some of our services and products are often considered complex and may involve a new approach to the conduct of business by our customers. The market for our services and products may weaken, competitors may develop superior services and products that perform logistics services on a global scale or within a particular geographic region, or we may fail to develop or maintain acceptable services and products to address new market conditions, governmental regulations or technological changes. Any one of these events could have a material adverse effect on our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Claims that we infringe third-party proprietary rights could trigger indemnification obligations and result in significant expenses or restrictions on our ability to provide our products or services.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Competitors and other third parties have claimed, and in the future, may claim, that our current or future services or products infringe their proprietary rights or assert other claims against us. Many of our competitors have obtained patents covering products and services generally related to our products and services, and they may assert these patents against us. Such claims, whether with or without merit, could be time consuming and expensive to litigate or settle and could divert management attention from focusing on our core business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As a result of such a dispute, we may have to pay damages, incur substantial legal fees, suspend the sale or deployment of our services and products, develop costly non-infringing technology, if possible, or enter into license agreements, which may not be available on terms acceptable to us, if at all. Any of these results would increase our expenses and could decrease the functionality of our services and products, which would make our services and products less attractive to our current and/or potential customers. We have agreed </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">40</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">in some of our agreements, and may agree in the future, to indemnify other parties for any expenses or liabilities resulting from claimed infringements of the proprietary rights of third parties. If we are required to make payments pursuant to these indemnification agreements, such payments could have a material adverse effect on our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our results of operations may vary significantly from quarter to quarter and therefore may be difficult to predict or may fail to meet investment community expectations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our results of operations may vary from quarter to quarter in the future due to a variety of factors, many of which are outside of our control. Such factors include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Volatility or fluctuations in foreign currency exchange rates;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Volatility or fluctuations in interest rates;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Timing of acquisitions and related costs;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Timing of restructuring activities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The introduction of enhanced products and services from competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our ability to introduce new products and updates to our existing products on a timely basis;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The termination of any key customer contracts, whether by the customer or by us;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Recognition and expensing of deferred tax assets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Legal costs incurred in bringing or defending any litigation with customers or third-party providers, and any corresponding judgments or awards;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Legal and compliance costs incurred to comply with regulatory requirements;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Fluctuations in the demand for our services and products;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The impact of stock-based compensation expense;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Price and functionality competition in our industry;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Changes in legislation and accounting standards;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our ability to satisfy contractual obligations in customer contracts and deliver services and products to the satisfaction of our customers; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors discussed in this report.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Although our revenues may fluctuate from quarter to quarter, significant portions of our expenses are not variable in the short term, and we may not be able to reduce them quickly to respond to decreases in revenues. If revenues are below expectations, this shortfall is likely to adversely and/or disproportionately affect our operating results. If this occurs, the trading price of our common shares may fall substantially.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may not be able to prevent or detect all errors or fraud.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Due to the inherent limitations of internal control systems, misstatements due to error or fraud may occur and may not be detected in a timely manner or at all. Accordingly, we cannot provide absolute assurance that all control issues, errors or instances of fraud, if any, impacting us have been or will be prevented or detected. In addition, over time, certain aspects of a control system may become inadequate because of changes in conditions, or the degree of compliance with the policies or procedures may deteriorate, which we may not be able to address quickly enough to prevent all instances of error or fraud. In connection with our on-going assessment of the effectiveness of our internal control over financial reporting, we may discover &#8220;material weaknesses&#8221; in our internal controls. 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. The existence of any material weakness may require management to devote significant time and incur significant expense to remediate any such material weaknesses. The existence of any material weakness in our internal control over financial reporting may result in errors in our financial statements that could require us to make corrective adjustments, restate our financial statements, cause us to fail to meet our reporting obligations, and cause shareholders to lose confidence in our reported financial information, all of which could materially and adversely affect the market price of our securities. If we are unable to successfully identify and remediate any material weaknesses that may arise in a timely manner, the accuracy and timing of our financial reporting may be adversely affected, and we may be unable to maintain compliance with securities law requirements regarding timely filing of periodic reports and applicable stock exchange listing requirements.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">41</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Privacy laws and regulations are extensive, open to various interpretations, complex to implement and may reduce demand for our products, and failure to comply may impose significant liabilities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 9pt 0pt;"><span style="font-family:'Verdana';">Our customers can use our products to collect, use, process and store information regarding their transactions with their customers. Federal, state and foreign government bodies and agencies have been increasingly adopting new laws and regulations regarding the collection, use, processing, storage and disclosure of such information obtained from consumers and individuals. Legislative and regulatory action is also emerging within the area of artificial intelligence. In addition to government regulatory activity, privacy advocacy groups and the technology industry and other industries may consider various new, additional or different self-regulatory standards that may place additional burdens directly on our customers and target customers, and indirectly on us. Our products are expected to be capable of use by our customers in compliance with such laws and regulations. The functional and operational requirements and costs of compliance with such laws and regulations may adversely impact our business, and failure to enable our products to comply with such laws and regulations could lead to significant fines and penalties imposed by regulators, as well as claims by our customers or third parties. Additionally, all of these domestic and international legislative and regulatory initiatives could adversely affect our customers&#8217; ability or desire to collect, use, process and store shipment logistics information, which could reduce demand for our products.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">The price of our common shares has in the past, including recently, been volatile and may also be volatile in the future.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The trading price of our common shares may be subject to fluctuation in the future. This may make it more difficult for you to resell your common shares when you want at prices that you find attractive or make it more difficult for us to raise capital through the issuance of commons shares. Increases in our common share price may also increase our compensation expense pursuant to our existing director, officer and employee compensation arrangements. We enter into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain share-based compensation expenses. Fluctuations in our common share price may be caused by events unrelated to our operating performance and beyond our control. Factors that may contribute to fluctuations include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Revenue or results of operations in any quarter failing to meet the expectations, published or otherwise, of the investment community;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Changes in recommendations or financial estimates by industry or investment analysts;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Changes in management or the composition of our board of directors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Outcomes of litigation or arbitration proceedings;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Announcements of technological innovations or acquisitions by us or by our competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Introduction of new products or significant customer wins or losses by us or by our competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Developments with respect to our intellectual property rights or those of our competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Fluctuations in the share prices of other companies in the technology and emerging growth sectors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">General market conditions; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors set out in this report.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">If the market price of our common shares drops significantly, shareholders could institute securities class action lawsuits against us, regardless of the merits of such claims. Such a lawsuit could cause us to incur substantial costs and could divert the time and attention of our management and other resources from our business.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">42</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fair value assessments of our intangible assets required by GAAP may require us to record significant non-cash charges associated with intangible asset impairment.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Significant portions of our assets, which include customer agreements and relationships, non-compete covenants, existing technologies and trade names, are intangible. We amortize intangible assets on a straight-line basis over their estimated useful lives. We review the carrying value of these assets at least annually for evidence of impairment. In accordance with ASC Topic 360-10-35, &#8220;Property, Plant, and Equipment: Overview: Subsequent Measurement&#8221; an impairment loss is recognized when the estimate of undiscounted future cash flows generated by such assets is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. Future fair value assessments of intangible assets may require impairment charges to be recorded in the results of operations for future periods. This could impair our ability to achieve or maintain profitability in the future.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If our common share price decreases to a level such that the fair value of our net assets is less than the carrying value of our net assets, we may be required to record additional significant non-cash charges associated with goodwill impairment.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We account for goodwill in accordance with ASC Topic 350, &#8220;Intangibles &#8211; Goodwill and Other&#8221;, which among other things, requires that goodwill be tested for impairment at least annually. We have designated October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> for our annual impairment test. Should the fair value of our net assets, determined by our market capitalization, be less than the carrying value of our net assets at future annual impairment test dates, we may have to recognize goodwill impairment losses in our results of operations in future periods. This could impair our ability to achieve or maintain profitability in the future.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">43</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:12.15pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="_Toc348944437"></a><a id="_Toc412813403"></a><a id="_Toc444070557"></a><a id="_Toc507752713"></a><a id="_Toc96001316"></a><a id="_ca11f1ad_ff48_4fb0_ade7_1497609181e9"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="ManagementsReportonFinancialStatements_6"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-size:11pt;font-variant:small-caps;font-weight:bold;">Management&#8217;s Report on Financial Statements </b><b style="font-family:'Verdana';font-size:11pt;font-variant:small-caps;font-weight:bold;">and Internal Control Over Financial Reporting</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">Financial Statements</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Management is responsible for the accompanying consolidated financial statements and all other information in this Annual Report. These consolidated financial statements have been prepared in accordance with US generally accepted accounting principles (&#8220;GAAP&#8221;) and necessarily include amounts that reflect management&#8217;s judgment and best estimates. Financial information contained elsewhere in this Annual Report is prepared on a basis consistent with the consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The Board of Directors carries out its responsibilities for the consolidated financial statements through its Audit Committee, consisting solely of independent directors. The Audit Committee meets with management and the independent auditors to review the consolidated financial statements and internal controls as they relate to financial reporting. The Audit Committee reports its findings to the Board of Directors for its consideration in approving the consolidated financial statements for issuance to shareholders.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">Internal Control Over Financial Reporting</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Management is responsible for establishing and maintaining adequate internal control over financial reporting. Internal control over financial reporting is a process designed by, or under the supervision of, the Chief Executive Officer and Chief Financial Officer and effected by the Board of Directors, management and other personnel to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with GAAP.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Due to its inherent limitations, internal control over financial reporting may not prevent or detect misstatements on a timely basis.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management assessed the effectiveness of our internal control over financial reporting as of January 31, 2025, based on criteria established in &#8220;Internal Control &#8211; Integrated Framework&#8221; (2013), issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on the assessment, management concluded that, as of January 31, 2025, the design and operation of our internal control over financial reporting was effective.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Management&#8217;s internal control over financial reporting as of January 31, 2025, has been audited by KPMG LLP, Independent Registered Public Accounting Firm, who also audited our Consolidated Financial Statements for the year ended January 31, 2025, as stated in the Report of Independent Registered Public Accounting Firm, which expressed an unqualified opinion on the effectiveness of our internal control over financial reporting as of January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">Changes in Internal Control Over Financial Reporting</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">During the fiscal year ended January 31, 2025, no changes were made to the Company&#8217;s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Company&#8217;s internal control over financial reporting.</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:51.62%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:48.37%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="font-family:'Calibri Light';font-size:11pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="font-family:'Calibri Light';font-size:11pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:top;width:51.62%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="font-family:'Calibri Light';font-size:11pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:48.37%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt;"><span style="font-family:'Calibri Light';font-size:11pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:top;width:51.62%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">&#8216;Edward J. Ryan&#8217;</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Edward J. Ryan</span></p></td><td style="vertical-align:top;width:48.37%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">&#8216;Allan Brett&#8217;</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Allan Brett</span></p></td></tr><tr><td style="vertical-align:top;width:51.62%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Chief Executive Officer</span></p></td><td style="vertical-align:top;width:48.37%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Chief Financial Officer</span></p></td></tr><tr style="height:7.65pt;"><td style="vertical-align:top;width:51.62%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Waterloo, Ontario</span></p></td><td style="vertical-align:top;width:48.37%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;line-height:1.27;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Waterloo, Ontario</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">44</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:22.2pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_52a6de25_e65d_4f16_acf9_aa4ad0cb1264"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';margin-left:0pt;visibility:hidden;">&#8203;</span></p><a id="MainLogoHere"></a><div style="height:0pt;position:relative;width:100%;"><div style="height:31.5pt;left:0pt;position:absolute;top:-9.3pt;width:76.55pt;z-index:251659264;"><div style="height:30.9pt;left:0pt;padding-bottom:0.6pt;position:relative;width:76.55pt;"><img src="dsgx-20250131xex99d1029.jpg" alt="Graphic" style="height:30.9pt;width:76.55pt;"/></div></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:36pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">KPMG LLP</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Vaughan Metropolitan Centre</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">100 New Park Place </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Suite 1400</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Vaughan, ON Canada L4K 0J3</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Telephone (905) 265-5900</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Fax (905) 265-6390</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 94.3pt;"><span style="color:#0000ff;font-family:'Arial','Helvetica','sans-serif';">www.kpmg.ca</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-weight:bold;">Report of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">To the Shareholders and Board of Directors of The Descartes Systems Group Inc.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Opinion on the Consolidated Financial Statements</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 5.75pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We have audited the accompanying consolidated balance sheets of The Descartes Systems Group Inc. and subsidiaries (the Company) as of January 31, 2025 and 2024, the related consolidated statements of operations, comprehensive income, shareholders&#8217; equity, and cash flows for each of the years in the three - year period ended January 31, 2025, and the related notes (collectively, the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of January 31, 2025 and 2024, and the results of its operations and its cash flows for each of the years in the three - year period ended January 31, 2025, in conformity with U.S. generally accepted accounting principles.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 5.75pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the Company&#8217;s internal control over financial reporting as of January 31, 2025, based on criteria established in Internal Control &#8211; Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission, and our report dated March 5, 2025 expressed an unqualified opinion on the effectiveness of the Company&#8217;s internal control over financial reporting.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Basis for Opinion</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">These consolidated financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on these consolidated financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">45</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Critical Audit Matters</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';white-space:pre-wrap;">The critical audit matters communicated below are matters arising from the current period audit of the consolidated financial statements that were communicated or required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of  critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matters below, providing separate opinions on the critical audit matters or on the accounts or disclosures to which they relate.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Determination of standalone selling prices of distinct performance obligations for customer contracts with multiple performance obligations</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">As discussed in Note 2 to the consolidated financial statements, the Company enters into contracts that can include the delivery of various combinations of goods and/or services. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the standalone selling price (SSP). SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach. When estimating the SSP, the Company makes certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. The Company&#8217;s consolidated revenues were $</span> <span style="font-family:'Arial','Helvetica','sans-serif';">651 million for the year ended January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';white-space:pre-wrap;">We identified the evaluation of the determination of the SSP of distinct performance obligations for customer contracts with multiple performance obligations as a critical audit matter. A higher degree of auditor judgment was required to evaluate the approach and the significant assumptions, including the basis for stratification, used to determine SSP for each distinct performance obligation in a customer contract.  </span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">46</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:46.95pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">The following are the primary procedures we performed to address this critical audit matter. We evaluated the design and tested the operating effectiveness of internal controls related to the critical audit matter, including controls related to the approach and significant assumptions used to determine SSP for distinct performance obligations in customer contracts with multiple performance obligations. We evaluated the approach used to determine SSP by comparing it to pricing patterns in relevant customer contracts, historical methodologies used by the Company, and general practices in the Company&#8217;s industry. We examined certain revenue transactions from the SSP population and compared attributes such as price and product group to customer contracts and invoices to evaluate the significant assumptions used, including the basis of stratification.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Business combinations - Valuation of acquired intangible assets</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">As discussed in Note 3 to the consolidated financial statements, during fiscal 2025, the Company acquired: (1) all of the shares of OCR Services, Inc. (&#8216;OCR&#8217;) for $82.8 million, net of cash acquired (2) all of the shares of Aerospace Software Developments (&#8216;ASD&#8217;) for $62.5 million, net of cash acquired and (3) all of the shares of Sellercloud LLC and certain assets of Sellercloud Europe Ltd. (collectively referred to as &#8216;Sellercloud&#8217;) for $110.2 million, net of cash acquired, plus potential performance-based consideration of up to $20 million based on Sellercloud achieving revenue-based targets over the first two years post-acquisition. For these acquisitions, the Company identified customer agreements and relationships, and existing technology, as acquired intangible assets and determined the fair value of customer agreements and relationships, and existing technology to be $24.2 million and $25 million, respectively for OCR, $12.2 million and $14.4 million, respectively for ASD and $17.3 million and $25.2 million, respectively for Sellercloud. As discussed in note 2 to the consolidated financial statements, the Company estimated the fair value of the identified intangible assets acquired in the business combination based on the income approach. This valuation approach involves significant subjectivity and estimation uncertainty, including the use of assumptions related to the forecasted cash flows attributable to the acquired customer agreements and relationships and to the existing technology asset, and discount rates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We identified the valuation of customer agreements and relationships, and existing technology acquired in the business combinations with OCR, ASD and Sellercloud as a critical audit matter. Significant auditor judgment and attention was required due to the significant measurement uncertainty in the assumptions related to the forecasted cash flows attributable to the acquired customer agreements and relationships, and to the existing technology asset, and the discount rates used to determine the fair value. In addition, the audit effort associated with these estimates required specialized skills and knowledge. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">The following are the primary procedures we performed to address this critical audit matter. We evaluated the design and tested the operating effectiveness of certain internal controls related to the Company&#8217;s valuation of customer agreements and relationships, and existing technology. This included controls related to management&#8217;s determination of the assumptions identified above. We evaluated the forecasted cash flows attributable to the acquired customer agreements and relationships, and to the existing technology asset by comparing the forecasted cash flows to the historical performance of the acquired businesses and external industry reports. We involved valuation professionals with specialized skills and knowledge to assess the methodology applied in estimating the fair value of the identified intangible assets and assist in evaluating the discount rates by comparing the inputs to the discount rates to publicly available data for comparable entities and assessing the resulting discount rate.</span></p><div style="height:0pt;position:relative;width:100%;"><div style="height:33pt;left:0%;position:absolute;top:13.95pt;width:96pt;z-index:-9223372036603117568;"><div style="height:32.95pt;left:0pt;padding-bottom:0.05pt;position:relative;width:96pt;"><img src="dsgx-20250131xex99d1030.jpg" alt="Graphic" style="height:32.95pt;width:96pt;"/></div></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;text-align:center;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Chartered Professional Accountants, Licensed Public Accountants</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We have served as the Company&#8217;s auditor since 2015.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Vaughan, Canada</span><span style="font-family:'Arial','Helvetica','sans-serif';"><br/></span><span style="font-family:'Arial','Helvetica','sans-serif';">March 5, 2025</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">47</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:22.2pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><div style="height:0pt;position:relative;width:100%;"><div style="height:31.5pt;left:0pt;position:absolute;top:-9.3pt;width:76.55pt;z-index:251660288;"><div style="height:30.9pt;left:0pt;padding-bottom:0.6pt;position:relative;width:76.55pt;"><img src="dsgx-20250131xex99d1029.jpg" alt="Graphic" style="height:30.9pt;width:76.55pt;"/></div></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:11pt;margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:36pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">KPMG LLP</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Vaughan Metropolitan Centre</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">100 New Park Place</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Suite 1400</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 94.5pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Vaughan, ON Canada L4K 0J3</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 94.3pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Telephone (905) 265-5900</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 94.5pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Fax (905) 265-6390</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 94.3pt;"><span style="color:#0000ff;font-family:'Arial','Helvetica','sans-serif';">www.kpmg.ca</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-weight:bold;">Report of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">To the Shareholders and Board of Directors of The Descartes Systems Group Inc.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Opinion on Internal Control Over Financial Reporting </i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We have audited The Descartes Systems Group Inc. and subsidiaries&#8217; (the Company) internal control over financial reporting as of January 31, 2025, based on criteria established in Internal Control &#8211; Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission. In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of January 31, 2025, based on criteria established in Internal Control &#8211; Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the consolidated balance sheets of the Company as of January 31, 2025 and 2024, the related consolidated statements of operations, comprehensive income, shareholders&#8217; equity, and cash flows for each of the years in the three-year period ended January 31, 2025, and the related notes (collectively, the consolidated financial statements), and our report dated March 5, 2025 expressed an unqualified opinion on those consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Basis for Opinion </i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">The Company&#8217;s management is responsible for maintaining effective internal control over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying Management&#8217;s Report on Financial Statements and Internal Control Over Financial Reporting preceding our reports. Our responsibility is to express an opinion on the Company&#8217;s internal control over financial reporting based on our audit. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial reporting was maintained in all material respects. Our audit of internal control over financial reporting included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, and testing and evaluating the design and operating effectiveness of internal control based on the assessed risk. Our audit also included performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">48</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:38.2pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Arial','Helvetica','sans-serif';font-style:italic;">Definition and Limitations of Internal Control Over Financial Reporting </i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">A company&#8217;s internal control over financial reporting is a process designed 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. A company&#8217;s internal control over financial reporting includes those policies and procedures that (1) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors of the company; and (3) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company&#8217;s assets that could have a material effect on the financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate. </span></p><div style="height:0pt;position:relative;width:100%;"><div style="height:33pt;left:0%;position:absolute;top:5.2pt;width:96pt;z-index:-9223372036603114496;"><div style="height:32.95pt;left:0pt;padding-bottom:0.05pt;position:relative;width:96pt;"><img src="dsgx-20250131xex99d1030.jpg" alt="Graphic" style="height:32.95pt;width:96pt;"/></div></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Chartered Professional Accountants, Licensed Public Accountants</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';">Vaughan, Canada</span><span style="font-family:'Arial','Helvetica','sans-serif';"><br/></span><span style="font-family:'Arial','Helvetica','sans-serif';">March 5, 2025</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">49</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_e7964650_bf05_4cde_874a_f5f99514ebbe"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#160;INC.</b></p><a id="CONDENSEDCONSOLIDATEDBALANCESHEETS_69858"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED BALANCE SHEETS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP)</span><span style="display:inline-block;width:25.5pt;"></span></p><a id="_2a0f383d_a499_4b5c_9e5f_33ac38a75662"></a><a id="Tc_zn0Yq17LhEi86cOYw_CMLw_1_2"></a><a id="Tc_xmsVHUs7aku1yuECamfuOA_1_4"></a><a id="Tc_1qW3jesNO0iH7VqzMNuDrA_2_2"></a><a id="Tc_4OsqUzcjkUSHPnwccrJ44Q_2_4"></a><a id="Tc_Qjw4B7l7AEyUEgApT0hp9A_3_0"></a><a id="Tc_mPoHFpiXbUOc4EGUpBEmDw_4_0"></a><a id="Tc_K3OB8f2FQkqhCa5IdCL8xQ_5_0"></a><a id="Tc_JoBHfWU73k-U4YLMhR0qNA_6_0"></a><a id="Tc_KZVryvjuiES95jwtrhQuOQ_7_0"></a><a id="Tc_hH_KD2v_x0ymA1V6S0bEJQ_8_0"></a><a id="Tc_c4zagBx_-0-k8SR3xRpEpA_9_0"></a><a id="Tc_MclQtipT3EaeNrTzFwnwug_11_0"></a><a id="Tc_ZnT2ZQ0cOUipGnkn_6dpEA_12_0"></a><a id="Tc_691-mxt-iUyVeC_9JzHSog_13_0"></a><a id="Tc_jg-UMkYUXEuW3RaNXav1Dg_14_0"></a><a id="Tc_dBtxI-tkBkyOQ9_vYL8Lsw_15_0"></a><a id="Tc_2r9HOghhsECeSGrTB8BWJQ_16_0"></a><a id="Tc_58CDFjuJyE2b5LrQza9aCA_18_0"></a><a id="Tc_G5_Bs1c6BE6uXwx_md82LQ_19_0"></a><a id="Tc_Ou9_LJSvfki3jG0kgoWX3A_20_0"></a><a id="Tc_gQxvblzJpUiGDMbwFXzbDA_21_0"></a><a id="Tc_u0LGmo3wOkSilFqWJTEVew_22_0"></a><a id="Tc_nrV8GQDoTk-_Woro13RFdg_23_0"></a><a id="Tc_L_Eq4IyCQ0-_tASl5dqPyg_24_0"></a><a id="Tc_a1RsBgEy0EGo1JwahcYQKg_26_0"></a><a id="Tc_ZgxnvlCEnk6TiqM3GmXzJw_27_0"></a><a id="Tc_Ocgo-4zX1EanVb742PSq8A_28_0"></a><a id="Tc_0l8gXZEh302rireYYyHPGw_29_0"></a><a id="Tc_hZJ2BfV9pk6jlI6dj3_Dpw_31_0"></a><a id="Tc_S4-4oC6RQk-vIPkVfidI6g_32_0"></a><a id="Tc_3RLtulqY3Eqt2vurBcmxEQ_33_0"></a><a id="Tc_3004PZwYXEC1w25lvNXosg_34_0"></a><a id="_ca54e4f0_8ebb_4943_8834_6da3d8d06389"></a><a id="_ca54e4f0_8ebb_4943_8834_6da3d8d06389_2"></a><a id="_ca54e4f0_8ebb_4943_8834_6da3d8d06389_3"></a><a id="Tc_caJcJdCazECcZ4EIhhmhzQ_35_0"></a><a id="Tc_XM6bnesviEuVx2ydICBe-g_36_0"></a><a id="Tc_st59qjaXVEO1ziKY8Z-coQ_37_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASSETS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">CURRENT ASSETS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_CHfT8mGpgkmDABrQtb8ZiA_5_2">236,138</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_jxjHW78V3U6_y0NSiS1IMQ_5_4">320,952</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accounts receivable (net)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Trade (Note 5)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_kfd0JY7mCUeseiFnpTVsoQ_7_2">53,953</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_lFvjAE5RcE29L0OWKdMF0w_7_4">51,569</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Other (Note 6)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_SQAZEsnOYkKpt2hLv8pIyQ_8_2">16,931</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_MLzlFNzl0k6z8avv58e8oQ_8_4">12,193</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Prepaid expenses and other (Note 7)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_ah9J0ei69kmEj4j-dERGAQ_9_2">45,544</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_O8Mz5Aa40EeSEoqkE9wyAA_9_4">33,468</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_4mgQBi85D06Afvf10cKSPw_10_2">352,566</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_cix-wpEgek2bNTgRY8PF_A_10_4">418,182</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">OTHER LONG-TERM ASSETS (Note 19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_tkvLo9q6IkWnq50s-JUTsg_11_2">24,887</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_WhQSiZdjP0SK0Uhny2-gRQ_11_4">24,737</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">PROPERTY AND EQUIPMENT, NET (Note 8)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_VYXR-kWbsE6L-C3_YY2A-A_12_2">12,481</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_Aw6PfXecCE-BNTsk_RHumQ_12_4">11,552</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">RIGHT-OF-USE ASSETS (Note 13)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_cJAXxHL_L0qEVASbGjkMqA_13_2">7,623</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_2v_aY8Z2NUewJVGcjKUWtg_13_4">6,257</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">DEFERRED INCOME TAXES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_-qdecnzaW0e_0LSOfuwOvQ_14_2">3,802</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_Vro-v2EFc0iI9uG_T--I_Q_14_4">2,097</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">INTANGIBLE ASSETS, NET (Note 9)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_nVT7LqyyJ0u4heKgtseuxA_15_2">321,270</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_YxXbJbVRVkmMtSgRxRyimw_15_4">251,047</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">GOODWILL (Note 10)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_JT9Yc_VPsUqwH9mCDHxRgw_16_2">924,755</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_KJS6X89aqEOnQu_xDM1W6Q_16_4">760,413</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_1DLVOIpXfkW9tpPK28h6KQ_17_2">1,647,384</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_jB0Csmj7o0iqp5GlrKna8g_17_4">1,474,285</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">CURRENT LIABILITIES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_hICdF187l0GuIhcDk1V6Jg_20_2">20,650</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_EyGIDWLKjU2DSYnjeBnfVA_20_4">17,484</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accrued liabilities (Note 11)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_hHjx9TRIPEqyxaj5IuVhBQ_21_2">79,656</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_QZobzueaOk2Ww0kVq8j4dg_21_4">91,824</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations (Note 13)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_Dwnfw61PNke3_savjOMnqQ_22_2">3,178</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_aTvz1JU1uUKkI6-pAhHiVQ_22_4">3,075</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="Tc_7KV0_ZWKCEG7jFBKEVwrrQ_23_2">9,313</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="Tc_RMa6qVLMWE-6N7BGMN0IlA_23_4">6,734</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue (Note 19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_Fy5nu2EyoUuifRbjgE5-gg_24_2">104,230</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_0sDlt-B43E-u6xAXoeTzuA_24_4">84,513</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_Zmpyc4Mv402JQkbWu9-V2Q_25_2">217,027</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_GWd4uB_YlEKmtCWl89A_7Q_25_4">203,630</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">LEASE OBLIGATIONS (Note 13)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_4n-c0Tm610uRU9O33cYrPQ_26_2">4,718</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_xGfND8qJmkaaaM-Shyb-Sg_26_4">3,903</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">DEFERRED REVENUE (Note 19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_3OWMJyYCXE6B-SC4c1BWfg_27_2">978</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_0FrXIGKJmU2BK5FIS1jI5A_27_4">1,464</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">INCOME TAXES PAYABLE</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesNoncurrent" scale="3" id="Tc_QfHKhFq8AkiB0SKCgyGWpQ_28_2">5,531</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesNoncurrent" scale="3" id="Tc_VM7WadcJi0CQlVQ6hjmnVQ_28_4">6,153</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">DEFERRED INCOME TAXES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_gi_dITCTYUO4Xyf5FFf73Q_29_2">34,127</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_xH-3oXnl0EiOwou51SzORw_29_4">21,101</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_iDlBhxYaF0q809hVVFaR8g_30_2">262,381</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_R_a46xO3KkyehudaebvLSA_30_4">236,251</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">LONG-TERM DEBT (Note 12)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">SHAREHOLDERS&#8217; EQUITY (Note 15)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Common shares &#8211; </span><span style="font-family:'Verdana';">unlimited</span><span style="font-family:'Verdana';"> shares authorized; Shares issued and outstanding totaled </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_4-LLWYX8SEOKhTUkQ5d_IQ"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="0" id="Narr_BF-TaEWWa0GbVy_voK-m1w">85,605,969</ix:nonFraction></ix:nonFraction></span><span style="font-family:'Verdana';"> at January 31, 2025 (January 31, 2024 &#8211; </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_dmy39sk92kWMYAwWVg2-qQ"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="0" id="Narr_0lS6VgKCZ0O8OMEYl4z0tQ">85,183,455</ix:nonFraction></ix:nonFraction></span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_J7C520-gy028I1h9xbVvCw_34_2">568,339</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_-iC703aX2ECHIqAObLuasA_34_4">551,164</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Additional paid-in capital</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_hQ-lXQ8jqUK3ZXJ83tyufQ_35_2">503,133</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_n0WhrF4tZUyW6-Owj6_DqA_35_4">494,701</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated other comprehensive loss</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_DOCcBETKKkSbQOPiJ-0qBQ_36_2">50,497</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_2xafTuM1n06sgQ5nu1X_Aw_36_4">28,586</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Retained earnings</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_fc69UwyYyEKdN7gjQBRe-w_37_2">364,028</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_jdTk7UZdGUOcshZIKcAdHQ_37_4">220,755</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_dOKTtXxdPkWUArlYmU40qw_38_2">1,385,003</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_jSzPKFDAd02Ho0SUvhRg2g_38_4">1,238,034</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_v--B2vYRMkqh830XNZljIQ_39_2">1,647,384</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_9LBUYwdvR0234VHFWtX1Mg_39_4">1,474,285</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:6pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">50</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_a38c5dbf_2c59_42c7_991b_d99fd2c3a3c6"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#160;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATI"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED STATEMENTS OF OPERATIONS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><a id="_41d99a8b_d3e4_4bcb_bf00_e45d2ca9af6a"></a><a id="Tc_tj1GvfK4cEqOgQHIgvW9_g_1_2"></a><a id="Tc_YcW7joRm70KGJAs-qHlS7Q_1_4"></a><a id="Tc_Q-R3o2vlik2nJoCYn0KhgQ_1_6"></a><a id="Tc_eL5GlbK9nU22EtJ789t1JQ_2_0"></a><a id="Tc_L7Xxln7xDEG0gDETRuuC2Q_2_2"></a><a id="Tc__ECjXT3KT0qLLyiW1VAU4g_2_4"></a><a id="Tc_dsRUpgJ8g0CicrZ0pLXMOA_2_6"></a><a id="Tc_E0tPt4SPqk--Gg9XvD8OJw_4_0"></a><a id="Tc_KjSIK5iFsEuS3e5_IuGqLw_5_0"></a><a id="Tc_aty6xNKfS0C-Sx4TdwBFFQ_6_0"></a><a id="Tc_Ptxdx_3IREKTP0pIBTSJuA_7_0"></a><a id="Tc_HHxWxshchUOPFrx7h5pjuw_8_0"></a><a id="Tc_N9kXuQsUO0isY9vSycZVYw_9_0"></a><a id="Tc_ehMv4qBtxEKTN7kQQrgo7Q_10_0"></a><a id="Tc_LBzFaJ3D_0u3svnf3Qf-TA_11_0"></a><a id="Tc_Hso98YDX5EqkaMo6IexNjA_12_0"></a><a id="Tc_sfVha8_6dUqhVweb4Mt9qA_14_0"></a><a id="Tc_Q2SkKg5GvECOHmo5bSyH_Q_15_0"></a><a id="Tc_Wu1kThcz7kynwjXE01jzMA_16_0"></a><a id="Tc_Dy0s-z7AHEmy9eO856CWJA_17_0"></a><a id="Tc_XRrpmHZcv0mblixnGK2dNA_18_0"></a><a id="Tc__kHklzrL9EWPVuuF-gq29Q_19_0"></a><a id="Tc_NsdgOAxsh0CZvsS1-FAPIQ_20_0"></a><a id="Tc_SULdSzuZOkeMdbU56hQwew_22_0"></a><a id="Tc_KQAm0KGTs0eSw-t5cDaHGA_23_0"></a><a id="Tc_5FbUbPht3U-s-biqghQnZA_24_0"></a><a id="Tc_JihhsxCcw0u-qz85kx7l4w_25_0"></a><a id="Tc_H5zLvf_boUW5FJY02Vh9kw_26_0"></a><a id="Tc_-V7WnpvwQkqByqz8dxcdPg_27_0"></a><a id="Tc_tc0jSHuEWEOcC0FACbEfkw_28_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:62.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_VDnRbEg1skSMokTKF1YIoQ_4_2">651,000</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_26lcN4l2GUyN27Z3MS9mqg_4_4">572,931</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_41toRXewmUqSErmO7WMQTQ_4_6">486,014</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">COST OF REVENUES </b><span style="font-family:'Verdana';">(exclusive of amortization presented separately below)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_v7prsMhe7UWx8Zec-3GbuA_5_2">158,574</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_26tNsXCImECo0SqWrKVTQg_5_4">138,295</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_7YTbOBS85EmIQlyr_pWAxQ_5_6">113,326</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">GROSS MARGIN</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_vWiFMzTeJkioU7LMAhGJUg_6_2">492,426</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_16Wh26MtiUWXPwSap1fSzQ_6_4">434,636</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_GTSxEcvXYkGNojtVw6gICw_6_6">372,688</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">EXPENSES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_i6BPls7jCUSe8Y4YyF4INg_8_2">73,692</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_GVL0hnQUqkWJqWkS3AcHfA_8_4">68,161</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_cJ52IirvokumktCpaSmeWQ_8_6">56,573</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_QMWnthG-BUSv8jTTHr0XOg_9_2">95,497</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_V3yXX1lYuUSfVbahMaNWkA_9_4">84,103</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_q2wTyv3pfUiXc1meH7TVEw_9_6">70,353</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_CDWpE3u5vkaR3sroA5y5SQ_10_2">65,248</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_OxI3XkW4QUK2Ze9C90OqyA_10_4">57,373</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_OHjwsEuZlkSKz8YotBuERw_10_6">49,710</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other charges (Note 20)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_8uI3MgIy4EyM1kS9s-h2cQ_11_2">7,466</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_MmWSePsGOkWz3YWEX5tDlA_11_4">21,649</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_dTjBsKNG8UqoogrISM5qUQ_11_6">5,441</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_RnSXR_juy02tC6gUuTrNFg_12_2">69,399</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_93oQw7wcmkiBh6V3yvix1A_12_4">60,501</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_qJ0eV4_f60m_5PEYpXPCPQ_12_6">60,177</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_CKgmOJyciU-OdwNvGyTWHw_13_2">311,302</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_7cgm3w2rGEKpV7Ew2O8nRA_13_4">291,787</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_nFqYrdiRj0yFP1qJNHys_g_13_6">242,254</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INCOME FROM OPERATIONS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_RVCe24vqUU6mPr_89GAQcA_14_2">181,124</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_HtYWMZb70EutSEU4uN5_5g_14_4">142,849</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_bW_oK4kUWE2dL9iZ9LpHsg_14_6">130,434</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INTEREST EXPENSE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_I-jwkUYuOEiH051OOl23TA_15_2">1,004</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_fC1h0WCLQk6P77dBYxDzNQ_15_4">1,363</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_80Fd7ZxuvkmzztVEPNGcJA_15_6">1,167</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INVESTMENT AND OTHER INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_5Yu7WBbmEUSsjTaP0mXckA_16_2">11,513</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_bNusPRgtY0eKWkhFCeUsuw_16_4">9,666</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_29yf_Q_t4Eq9cHLqvRF7IA_16_6">4,461</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INCOME BEFORE INCOME TAXES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_43gUhn0SKEKUbhh4jWKHDA_17_2">191,633</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_cuRdd3-lxUWR1yJkLX1g7g_17_4">151,152</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_g7RkF_ty2EeT67ZkHaTWVg_17_6">133,728</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INCOME TAX EXPENSE (RECOVERY) </b><span style="font-family:'Verdana';">(Note 18)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_5lJ704KD30WJGI1ghyhdtg_19_2">53,402</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_howbPGdTpEW9PZ54-cVmrw_19_4">41,223</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_FUk8aoWMM0y6FcTM4ZSI-A_19_6">28,248</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_quB6AJ1Yn0q_t-bVyZ3kXA_20_2">5,042</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_njLICpaXuECN_LS4xWW26Q_20_4">5,978</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_3owDbajyFUiyZI_5LBeB9g_20_6">3,244</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_i7oarAy0dUiNdimfOIycvA_21_2">48,360</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_JaKzMvF020CrECn43E5UaA_21_4">35,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_J56hZCsmrUOcrs3c-xGb0A_21_6">31,492</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">NET INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_vZbw1VERkUmgF1uNFtNFCg_22_2">143,273</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_UnZzxkey-kaPB58weiEB1w_22_4">115,907</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_KRaIvv8xnkePyDJIXSsBFA_22_6">102,236</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">EARNINGS PER SHARE </b><span style="font-family:'Verdana';">(Note 16)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_t5aJUkQHO0asXrHJXHuYow_24_2">1.68</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_74dd_VKe5keJkWNVM0V8SA_24_4">1.36</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_F--MPc23v0GTCCuXUQo1AQ_24_6">1.21</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_voYpUWUAS0-pp_7zP3OtZg_25_2">1.64</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_NlWI4krCDEammPuyDpOBEg_25_4">1.34</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_VpMCSzOjAUamf9PYkAjRfg_25_6">1.18</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_nstvyDNRn0GOG8NSX7TaaQ_27_2">85,443</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_tG4msv9ar0qaEqAfxw05EA_27_4">85,068</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_WZ_MdodcW0iOLlFG-rtJUA_27_6">84,791</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_Tw96ztT9gUKs_vjTTb7iCA_28_2">87,323</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_KcIcG856tkaxPUj39VkdQg_28_4">86,818</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_jRHN6SSvHUukCH1aRiFW9Q_28_6">86,451</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">51</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_f27c807d_3c4c_4d1d_969f_433247252517"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#160;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFCOMPREH"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><a id="_4f94cb0d_5cfd_40c7_a271_f2c357bb7122"></a><a id="Tc_d7u8EOyyKUijP-mqaebNBg_1_2"></a><a id="Tc__3Jtq-4gsUO0-7ax83qmNg_1_4"></a><a id="Tc_F2seZO2LlUGsoC_SUB9gkQ_1_6"></a><a id="Tc__Pdf_wcA_kiLQCPBUEoJ7g_2_0"></a><a id="Tc_Fbnp8npF9k6w02kWfxhPww_2_2"></a><a id="Tc_THv2zr18kESGCsnwYlpGGg_2_4"></a><a id="Tc_TTBmgQg6PkO6l3N7YPkzwA_2_6"></a><a id="Tc_Y0xoYAN7ckOsL52q2ZkEyA_4_0"></a><a id="Tc_7DsTMkYsj0u-I044s-oTNA_5_0"></a><a id="Tc_Vdu8FsCLx062sUyjgiZi0A_6_0"></a><a id="Tc_TDQU4lG040GNXFj2vbmSzA_7_0"></a><a id="Tc_eYIYHxFdC0WsLSl2KX2Lhw_8_0"></a><a id="Tc__pB46Va-_UaWOsFDbwFMjQ_9_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:62.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:62.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Comprehensive income</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net Income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_vgTQe9gW2kqbIVhdIloITA_5_2">143,273</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_f1xSdSiPSkuYc1mgdoacEw_5_4">115,907</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_sdu3wQzj-0CXPf5GeeQxFQ_5_6">102,236</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other comprehensive income (loss):</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Foreign currency translation adjustment, net of income tax (recovery) expense of </span><span style="font-family:'Verdana';">$(<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" sign="-" scale="3" id="Narr_fV7QmC6bZ0SYjRgQlBq9LQ">391</ix:nonFraction>)</span><span style="font-family:'Verdana';"> for the year ended January 31, 2025 (January 31, 2024 &#8211; </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_CfxXTgJoRE-UGPsgUZIBtQ">1,094</ix:nonFraction></span><span style="font-family:'Verdana';">; January 31, 2023 &#8211; </span><span style="font-family:'Verdana';">($<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" sign="-" scale="3" id="Narr_9-NTq-9BX0WbPWlQJdPHlg">58</ix:nonFraction>)</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_lh0jwHjre0iXruc3qlA0Pw_7_2">21,911</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="Tc_2hgbkRQ6GkG4q7zjAyT9iQ_7_4">1,870</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_n5RWqS4SdUiAgA73xFHGSw_7_6">18,063</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Total other comprehensive income (loss)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_cmoa3K_YAESAU4Sg0CZCSA_8_2">21,911</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" scale="3" id="Tc_sKwWNekwAE6rJS4ikuzSaA_8_4">1,870</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_K880w6ngFU6gCGNil-KMWA_8_6">18,063</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">COMPREHENSIVE INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_XEpbCb6k60a7tCfA7j440g_9_2">121,362</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_LSi5KUi20UyImeRrLczCRg_9_4">117,777</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_hRtu330zkkG9MrEwYJO-pQ_9_6">84,173</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">52</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_44983508_6703_4d35_bb22_939803cfe5fd"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#160;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFSHAREHO"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="_73d91ee2_a4ca_4703_b88f_147ca3cfe6a1"></a><a id="Tc_db9lmZmRr0G-jpzyIWik3w_1_2"></a><a id="Tc_eWDCXhVzckm-Iqa6yYGIoA_1_4"></a><a id="Tc_CXd75rQUp0yrc4ekOtgD7Q_1_6"></a><a id="Tc_Tv3KxLxuWEq9lwfMTFsmRg_2_2"></a><a id="Tc_NFA1PuxiFkqSgDpLD3R5sQ_2_4"></a><a id="Tc_nwwdcsLZIEqFlVbFQEr1PA_2_6"></a><a id="Tc_8STpwuHnsUyycE9_oZ7u1g_4_0"></a><a id="Tc_4EuX7Y7P30mxthgLQek6jA_5_0"></a><a id="Tc_NcaqED6JJky6lawUr-uNBA_6_0"></a><a id="Tc_dXjd32n5kEC0ouGc2rYhdg_7_0"></a><a id="Tc_YEMLQf9xBU6HEfq8ymXJxw_9_0"></a><a id="Tc_Qkfcs278JEK60wBMn0cEfg_10_0"></a><a id="Tc_HhXcaHMS90yN3lOxfD2AqQ_11_0"></a><a id="Tc_iKZf4WwlXUyLVRwOIhVogQ_12_0"></a><a id="Tc_8_V_LHqb40KEGGJ-qqR-sQ_13_0"></a><a id="Tc_Df46V8bkJUKRb7eU8zW7Rw_15_0"></a><a id="Tc_MExw6jH1Q0Sf8bGoBE039g_16_0"></a><a id="Tc_Adzu8C_tVkip_2ANQB2ftA_17_0"></a><a id="Tc_QilsOlvR-keILNw3dppPdg_18_0"></a><a id="Tc_7SWvKlLjb0-AjhHtLzr2pw_20_0"></a><a id="Tc_9PrXW3onmESLstHr71yPvw_21_0"></a><a id="Tc_tGUTjY7dUEK1oGw1j3dMYg_22_0"></a><a id="Tc_ahVKWMocW0iyfFxQJAbNrQ_23_0"></a><a id="Tc_veiUnRtsvEWiTDyjxWrTMQ_25_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Common shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ONNSmfAFLU2r9QyLtDKQdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_ZpgxpYraSEKxpyVYZX0s7A_5_2">551,164</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_LPYOpY2mD0KueCOKxSreig" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_wjxMSCuTRUmI3n64qrlg9g_5_4">538,448</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_pdvd9opf0EmTA4vY3rwJwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_rasM7HPPX0W52gsI8qN8-Q_5_6">536,297</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uUzTcmdSIkSTNn7W5gkVVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_rjxqFZI3QUmvdQJSHFuFwQ_6_2">17,175</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_quv2HM7Wnk-vrR8nBH9zyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_vfxDjukSMEiRJoBA2Sx9vA_6_4">12,716</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FqO6D9icB0-m9TaBJJLk6Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_3cudCbXC7EKHKeyVIblQTw_6_6">2,151</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_deaPScdFcEq6NKWslvdpzQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_lqqOXsYySEKjDWYVgsEbHQ_7_2">568,339</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ONNSmfAFLU2r9QyLtDKQdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_ql6Pdl5zWU-iLVuJFVv4VA_7_4">551,164</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_LPYOpY2mD0KueCOKxSreig" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_1Zt1rVpYnEqAMP3eyTSmbA_7_6">538,448</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Additional paid-in capital</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_sfuZ6nhlmUeDaCYsqZmXOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_8iafRu1OA0-Q0K2bk7YAJw_10_2">494,701</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jJZe_wORSkuhP9G8pScoKw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_FGWirunJcEipsRq77rBFAw_10_4">486,551</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_p-0qPeTS6UKlrC3J9r9OXw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_gp7Jqa_6oE-LZfy2Fcr8KQ_10_6">473,303</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock-based compensation expense (Note 17)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_mrABNMA4gk2eTijk8iNOdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_g1fviC1sSEWk10JqudGBow_11_2">19,962</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_19_KbqfP4U6aO7yGSqOyLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_FvLB3uGorkeakysQsfacDw_11_4">16,480</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nEtpcKGo3kKmavV9ctha6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_YSx6nDFRKEK06ws19KQCxw_11_6">13,667</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_mrABNMA4gk2eTijk8iNOdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_7UfMtzJ020iI9Mqzpu7Qsg_12_2">11,530</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_19_KbqfP4U6aO7yGSqOyLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_bSQFPDsG2UW876dbdIE3NA_12_4">8,330</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nEtpcKGo3kKmavV9ctha6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_pglDrvd_6kqqyswM3XWsTQ_12_6">419</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_WJ7hDHiTiEGhyylWCtoSgA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_0CEvVswa9EyFQ6e4V_hcGQ_13_2">503,133</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_sfuZ6nhlmUeDaCYsqZmXOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_G0PiMYkAgUa6dFecPvK_vQ_13_4">494,701</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jJZe_wORSkuhP9G8pScoKw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_k0avLQKKo02H-TdpPwSbMw_13_6">486,551</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Accumulated other comprehensive income (loss)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3Ng61soA6EiEjE14GfjGdQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_fbbYiZIL1UeI50nvZQeiYw_16_2">28,586</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_jVXJQtjgTkyBxSFQOXTt0w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_qgakK_4eBEaW7gR8VBT26Q_16_4">30,456</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_eqyDr6O210uUltvKo6nSwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_a4681g_9LUqutQ_MXjdEnw_16_6">12,393</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other comprehensive income (loss), net of income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_qpSR7Sw6OUOd5UbcZ5Quhg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_6F9mzsf7HUaYkiZtH5EBgQ_17_2">21,911</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tsD-66TsZ0iu5mcDjH7frQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="Tc_5BZY5nrqjE-T8Hci7pNGnA_17_4">1,870</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_7punDIlfu02bV8Ry--oT0A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_MVdatWoSXU29iEyAcv-pOw_17_6">18,063</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ZZoJDsZMCkughNkJdOYgQw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_lDwHu85uR0ehuvqOKA1EBg_18_2">50,497</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3Ng61soA6EiEjE14GfjGdQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_rFUHHhrZZk-t6E-C6ttiCw_18_4">28,586</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_jVXJQtjgTkyBxSFQOXTt0w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_t7fQ2LxdjUOzwPttIRMLsg_18_6">30,456</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Retained earnings</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hfxuVkTEO0CpSC-CLc9ocg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_ypOOAZ0epUaHb8nzmrIlDA_21_2">220,755</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_2yDO-83P6UGboHA1yVxB9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_L8S7R1Rh8ESSOrd6zvJBug_21_4">104,848</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XMziVGkzgkG6rAiDzbV1mg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Fi0fvVTOQkCKvC4PYwnbAw_21_6">2,612</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_-Lmbiku6u0GkDADSUfLlPg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc__iFziWTlbUiZWZQXZvcS3Q_22_2">143,273</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_eFr7WsFJQEOi_8z-9mvrFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_OoHug14cZk648RfreIEm1A_22_4">115,907</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_4daqMAqhVUqvg0wDpZoNYw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_D42ONNOcn0qon2zUydeRog_22_6">102,236</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Xo5nsPjbxEarpd47qSr5eg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_bohPgt4UvEGtFEevK0Sasg_23_2">364,028</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hfxuVkTEO0CpSC-CLc9ocg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_oW-QWaO6l0mqkchOVtPgDQ_23_4">220,755</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_2yDO-83P6UGboHA1yVxB9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_sN2QnrRAXkaQ5QsLUv58Vw_23_6">104,848</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total Shareholders&#8217; Equity</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_A723gvcFHUycgMfPPcEgXw_25_2">1,385,003</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_acvM61L7qEKT7hVA4u2M_w_25_4">1,238,034</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_eXAE6MzzS0-HnvUCTGDYRg_25_6">1,099,391</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">53</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_6c058c52_511b_437a_81a2_2995aaf5a157"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#160;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLO"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED STATEMENTS OF CASH FLOWS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="_7c2f6db8_979f_4ec6_8c24_71c50ebb7e3f"></a><a id="Tc_KPFjN8zG40CGdOeqz5rjfA_1_2"></a><a id="Tc_t1cw0MKBVUyHsMLkh61Kdw_1_4"></a><a id="Tc_ezFuFT_88EO5sAYO0URKrA_1_6"></a><a id="Tc_NL2VLQ-HdkuVcM6o55GTVA_2_0"></a><a id="Tc_I2xJjXjUAkqew7ZCRexAJw_2_2"></a><a id="Tc_ZKT2aBr1SEO1taWeoxDlxQ_2_4"></a><a id="Tc_BuQoN_FfcEO3NpiJjM9mjQ_2_6"></a><a id="Tc_0c5s7M2mSkWY_tB20P31dg_3_0"></a><a id="Tc_lTWCyJWkiU6mosD1fepAzg_4_0"></a><a id="Tc_fpeTWqhHhE-e3c6jGU6YvQ_5_0"></a><a id="Tc_yhpL6ObG6kOzOzk-zwBnnw_6_0"></a><a id="Tc_ydpg7PM_bUmKnXNjKFq5Lw_7_0"></a><a id="Tc_mstCQo2mn02aSSFYobAcjg_8_0"></a><a id="Tc_iwh4ATch5ki4MYVXx8snmg_9_0"></a><a id="Tc_j_VlFAXDmESrNAe6i3RcRw_10_0"></a><a id="Tc_GvU1Vlu9zEaCitSOvYStMA_11_0"></a><a id="Tc_jTVNaD496UC0TSmcTD8b9g_12_0"></a><a id="Tc_7Oee7FmkmEG9pJu9W0XnEg_13_0"></a><a id="Tc__2YSzVif6EyS33Ad398J-Q_14_0"></a><a id="Tc_JzRCSqa_F0udUq1AvVnuuA_15_0"></a><a id="Tc_oaH3fLHMG0qy0OGUsduJBg_16_0"></a><a id="Tc_klHfAzS-jU2-q-uo4lM3Uw_17_0"></a><a id="Tc_lu354ZwAfkumDdrelwk-bg_18_0"></a><a id="Tc_SdrHNx8dFEGf2KcWpejGqg_19_0"></a><a id="Tc_2cAXjOVcZ0y9x4wTsbN0og_20_0"></a><a id="Tc_nGYD-o8wnkOxw6XyXo-UOA_20_6"></a><a id="Tc_voJglx9kEEy5-q4YXnR2Rw_21_0"></a><a id="Tc_RF9ugYtej02KuDXIJht12w_22_0"></a><a id="Tc_Mzo7q8H1IUSEPLJWLAQRoA_23_0"></a><a id="Tc_sMR1k45kv0ab_bik22oGnQ_24_0"></a><a id="Tc_pi9IU6wPyUq14sZl8wuLiQ_25_0"></a><a id="Tc_vuKM8nzTe0CfMPn1zws71Q_26_0"></a><a id="Tc_Ubz_UxAvakutTpJYOSYKwQ_27_0"></a><a id="Tc_oN__JVgMOEWvAXeNQjhS5A_28_0"></a><a id="Tc_wwvK6hjVa0ObMGRLOcC4Kg_28_2"></a><a id="Tc_cxmQKYDIUUmSIw9qZOwzhQ_28_4"></a><a id="Tc_dSEyXE2dWkavaiO2iYV5ng_28_6"></a><a id="Tc_tdEabGrb0EObCeUYNryBWg_29_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:62.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OPERATING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_ffNi29KBLUqQtpjwsyDcNw_4_2">143,273</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_3biLm-1_sEyZgzwZhMbC_w_4_4">115,907</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_nzwza1cgYk2z4UBg9I1zJQ_4_6">102,236</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Adjustments to reconcile net income to cash provided by operating activities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_pSoTmN6r7EKvCh87LzXdAA_6_2">5,589</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_nCKQPIbgO0-S_ElTsild0A_6_4">5,474</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc__X1N2xBVd0mKuaAm5xSrkQ_6_6">5,225</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_QvIwjU_fo02-P2q5j5Uv_Q_7_2">69,399</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_38mQ57KxWkieWnWbRuXG3g_7_4">60,501</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_heANWBF_qEqMBIIF25sVYQ_7_6">60,177</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock-based compensation expense (Note 17)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_T09dGfDdEkeev1KsidqWJQ_8_2">19,962</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_Fb9Qn2wtbE2XFgjpdN5QmQ_8_4">16,480</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_6n_xhp_ElU28zOJeQnCoow_8_6">13,667</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other non-cash operating activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_PHqgFGHCWEadXSFH_iVD0Q_9_2">23</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_NIW4ci0kVkC-wV6HEnTZ6Q_9_4">114</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_udOaGQ-7EkG4AtVS65KVCA_9_6">53</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_cy2__w92_UW3WX_vzsX1ng_10_2">5,042</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_WgIVVNGZakeKeLhcqMWsww_10_4">5,978</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_9bjcWnuagUGkmql2oviQNg_10_6">3,244</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Changes in operating assets and liabilities (Note 21)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" scale="3" id="Tc_4Hd8lMjTNEOrUaei4vbQKA_11_2">13,932</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_ebqjJJR9qEyZYDMU0wjR_Q_11_4">15,182</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_aTltZkf1-kSEujrfFLi0Bg_11_6">7,793</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cash provided by operating activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_1sX6gqxv5EKXt3gyfp0FiQ_12_2">219,272</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_lCfmGgL8O0Gv7Lq-pZ6UwQ_12_4">207,680</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_DESYzL3Zy0Khjj6XxhivgQ_12_6">192,395</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">INVESTING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Additions to property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_HEha40-xi0iyV83FZNahNQ_14_2">6,743</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_AZ_9pLrGs0GlRxfMvApBcg_14_4">5,563</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc__xURxsHWl0qCDO1F8h4tXQ_14_6">6,071</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of subsidiaries, net of cash acquired (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="3" id="Tc_9i6Q4wIZvkmE6mX0iojrjg_15_2">290,204</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="3" id="Tc_gII8uYSfIk2ip5lgR8AaaQ_15_4">142,700</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesGross" scale="3" id="Tc_Eqabvkh0l0iUGt4qjVvwcw_15_6">115,561</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cash used in investing activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_sEnE0DyrKkWkWMDc9K1GjQ_16_2">296,947</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_T51fOS5520iuT4XKVNW-zg_16_4">148,263</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc__ghC3OFSTkOcWa7rX8GbIg_16_6">121,632</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">FINANCING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Payment of debt issuance costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_iLgNPwTiF06suP3U8b5pyw_18_2">53</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_oDjl-SmMpkqBtU3t6940Tg_18_4">43</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_shoGMKi30ECIUHOSJTtNSw_18_6">1,118</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Issuance of common shares for cash, net of issuance costs (Note 15)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_HJRIL9uUo0-N8fy7Vbn00w_19_2">12,391</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_p6Xp1GRKhUayjsX_JS_pjw_19_4">9,272</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_QSWVSDYOsUas43Diardovw_19_6">1,730</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Payment of withholding taxes on net share settlements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_DWvtRSgpIkC1nr1jtlS5Lw_20_2">6,745</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="Tc_R9rG4u7EN0q8tqf3IjCSRA_20_4">4,886</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Payment of contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_Ezs4jrYcN0i2d1oikg0olg_21_2">9,223</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_5SQH4iLUPUOlS0FeSQtlWQ_21_4">19,084</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_Ox21EpKj7EuPdU8tC9V7Sw_21_6">5,215</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cash used in financing activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_qixXncuvo0itFH5g5SwgqA_22_2">3,630</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_TO2tiS_fBECkJ5kL__DTrQ_22_4">14,741</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_AcFbo3_D7Eas-S35qkajKg_22_6">4,603</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect of foreign exchange rate changes on cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_7j2bQptoQEm_O7gLmmhz9g_23_2">3,509</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_yJNduI-vj0q9JdyfZc4Urw_23_4">109</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_NUHX--TrMEy9RH9hlwIrNA_23_6">3,212</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Increase (decrease) in cash</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" sign="-" scale="3" id="Tc_LcHUQ6woBESq_bp2oDDDsw_24_2">84,814</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_osNSxQFQo0qr4_FhxP3NEA_24_4">44,567</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_jZdX6XDkpkCVJMAxzNDxgg_24_6">62,948</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cash, beginning of year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_eqRuZwsbV0CW9mKwAkr2Ow_25_2">320,952</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_Gx8OQcIlfESb4J55l_PoYg_25_4">276,385</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_5dnNa201OUSga_uFNw4VDA_25_6">213,437</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cash, end of year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_5RvOsyolv0GSohJUw4q9tw_26_2">236,138</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_7EtW6FmUaka1QYddtQbRIQ_26_4">320,952</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_cOTbbny7pU67PUIIv8Aekg_26_6">276,385</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supplemental disclosure of cash flow information:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash paid during the year for interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:62.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash paid during the year for income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_UsRUdV3RS0-CiAAG-r3lFA_29_2">53,411</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_B1bm_9vqxUen2_JfW8R67w_29_4">44,939</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_wSYn093i20a91QaLAcTbww_29_6">23,791</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">54</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_584e7e36_b727_475d_9424_e32a9e657055"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#160;INC.</b></p><a id="NOTESTOCONDENSEDCONSOLIDATEDFINANCIALSTA"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">NOTES&#160;TO CONSOLIDATED FINANCIAL STATEMENTS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">(TABULAR AMOUNTS IN THOUSANDS OF US DOLLARS, EXCEPT PER SHARE AMOUNTS OR AS OTHERWISE INDICATED; US GAAP)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock" id="Tb_BRxAzgQsQ0Wy8dpiJ8py5A" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;1&#160;- Description of the Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group&#160;Inc. (&#8220;Descartes&#8221;, &#8220;Company&#8221;, &#8220;our&#8221; or &#8220;we&#8221;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&#8220;SaaS&#8221;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports;&#160;and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="Tb_YaEvBkmMTkeVW5HJx142YQ" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;2&#160;&#8211;Basis of Presentation</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" id="Tb_v_D9HScmmECRWcGuT5-7mQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying consolidated financial statements are presented in United States (&#8220;US&#8221;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#8220;GAAP&#8221;) and the rules&#160;and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our fiscal year, which ends on January 31, 2025, is referred to as the &#8220;current fiscal year&#8221;, &#8220;fiscal 2025&#8221;, &#8220;2025&#8221; or using similar words. Our previous fiscal year, which ended on January 31, 2024, is referred to as the &#8220;previous fiscal year&#8221;, &#8220;fiscal 2024&#8221;, &#8220;2024&#8221; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &#8220;2026&#8221; refers to the annual period ending January 31, 2026 and the &#8220;fourth quarter of 2026&#8221; refers to the quarter ending January 31, 2026.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have reclassified certain immaterial items in the consolidated financial statements to conform to the current presentation.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ConsolidationPolicyTextBlock" id="Tb_YJJ9SWrCx0iL7NdDBs-6YA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Basis of consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="Tb_uU-MKNI07EKSSx-Jc6GZsQ" continuedAt="Tb_uU-MKNI07EKSSx-Jc6GZsQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Foreign currency translation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#8217; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.</span></p></ix:nonNumeric></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">55</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont1" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont2"><ix:continuation id="Tb_uU-MKNI07EKSSx-Jc6GZsQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the year ended January 31, 2025, foreign currency re-measurement loss of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="6" id="Narr_1cinGfz-lkGpdE6fAlWcpQ">0.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million was included in net income (January 31, 2024 &#8211; loss of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="6" id="Narr_WpuuyYGSu0C5BijgxtETqA">1.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million; January 31, 2023 &#8211; loss of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="6" id="Narr_af5HR1ypjk-Fu0_K-aveSQ">1.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million).</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:UseOfEstimates" id="Tb_CSFeEexp0EKCGf7341_wvQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Use of estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#8217;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as contingent consideration related to business acquisitions, product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#8217;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#8220;SSP&#8221;) of performance obligations in contracts with customers. </span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="Tb_28_VAg38YEml7a6srask3A" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash included highly liquid short-term deposits with original maturities of three months or less.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="Tb_h6l4_OXtEkekjrIvvjUEoQ" continuedAt="Tb_h6l4_OXtEkekjrIvvjUEoQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#8220;Derivatives and Hedging&#8221; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#8217; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">56</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont2" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont3"><ix:continuation id="Tb_h6l4_OXtEkekjrIvvjUEoQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Canadian Overnight Repo Rate Average (CORRA); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" id="Tb_wjucQkPQl0yTnUkUP6g6zA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Provision for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. </span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:InventoryPolicyTextBlock" id="Tb_p4X9_XDhsUiED9rOt-UK9g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Inventory</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" id="Tb_jKaswZXuR0SGttzjaDz7jA" continuedAt="Tb_jKaswZXuR0SGttzjaDz7jA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Impairment of long-lived assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">57</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_yhRAhcyMl0aC6YrLZKTwZw_0_0"></a><a id="Tc_fQ559KIhBUCJj0AMUmCPRw_0_1"></a><a id="Tc_gxGowfd4okyWxqAo17uMDw_1_0"></a><a id="Tc_1U4toZBrhUiKllkor44wYw_1_1"></a><a id="Tc_yjh8TjppJE6nZSGGH2wVMQ_2_0"></a><a id="Tc_48OujwORq06V-_GgI6j46Q_3_0"></a><a id="Tc_2XMdIvQfM0O-0rB3QldVig_3_1"></a><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont3" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont4"><ix:continuation id="Tb_jKaswZXuR0SGttzjaDz7jA_cont1"></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock" id="Tb_HVmxfbR0DUmpiCNjuW_MZQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Goodwill and intangible assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test for impairment of goodwill at least annually on October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#8217;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2025 and concluded that it was more likely than not that the fair value of the reporting unit was greater than the carrying value. As a result, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="0" id="Narr_8nlpJ5_g7UiwiVr7xF-8lQ">no</ix:nonFraction></span><span style="font-family:'Verdana';"> impairment of goodwill was recorded in fiscal 2025 (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="0" id="Narr_hZp61dXPH0mr-pYsWoqq3Q"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="0" id="Narr_iHO34NjyvUyOzlgBvBUrgw">no</ix:nonFraction></ix:nonFraction></span><span style="font-family:'Verdana';"> impairments were recorded for fiscal 2024 or fiscal 2023).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Amortization of our intangible assets is generally recorded at the following rates:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" id="Tb_A9FDIX06XkCxrB-eSXMUzg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uGIbCZBY1UqAq72UYM0Gew" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_RRrRSHthskW7BypRoLb2Xg"><span style="font-family:'Verdana';">2</span></ix:nonNumeric><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QZK_mOfVYkOCMsFFa28N8w" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_0w8Cl906OEuRafY_KIVnNA"><span style="font-family:'Verdana';">20 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technologies</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember__dH2z9o4o0qjaumuWtExHg" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_j9XIsy6KeE6sGoaaDBh0rQ"><span style="font-family:'Verdana';">4</span></ix:nonNumeric><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_f5tfJp8bwUmRi7WcQjlDCw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_eWFkop9aTkCzOL8X61alCQ"><span style="font-family:'Verdana';">12 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_GlCnS2eQ70-THFgNQtM-2g" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_Wo9xMqZ4c0iM8O8AgqdwlQ"><span style="font-family:'Verdana';">3</span></ix:nonNumeric><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NDBGoKmY2kKbkiGg_0vp7w" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_ONZ1u39AJkyEhSdnH6raLQ"><span style="font-family:'Verdana';">15 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sHvFJqqXPkW4qWunmHxh-Q" format="ixt-sec:duryear" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_84hqtzx8gkW9RI5due9XFQ"><span style="font-family:'Verdana';">2</span></ix:nonNumeric><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LcnFxLiVzUq0H6h9uAQ2YA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_VcDJJkAsK0iBBJgok6ZQRQ"><span style="font-family:'Verdana';">12 years</span></ix:nonNumeric></p></td></tr></table></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><span style="font-family:'Verdana';margin-left:0pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="Tb_kRiMtAGo0kWeeHMzwLA_Bw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Property and equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Property and equipment is recorded at cost. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Depreciation of our property and equipment is generally recorded at the following rates:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" id="Tb_5xogVtsoSEeDLUstQo-nRA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_GFgmd6xaLkqwQ7AC8qXndg" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_Dipw-UHmCUC9i01eP4sFFw"><span style="font-family:'Verdana';">1</span></ix:nonNumeric><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_atjDyHjMlU-gOd3hUW_VpA" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_goCw9TRjq0u0JSSF59lKJA"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7bYn20uP7U2met2vX_szEw" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_b20WEgLD7kuf3kg27TdEkA"><span style="font-family:'Verdana';">3</span></ix:nonNumeric><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_VNE4i8i7ukuSJliA6WaUbg" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_iDfZtg7KdkmgNtFBvhBiyQ"><span style="font-family:'Verdana';">14 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Straight-line over lesser of useful life or term of lease</span></span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_Alknur5FEUiHFDnMNDMxaA" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_TnJLy7tiZUuP_QLTStAyig"><span style="font-family:'Verdana';">3 years</span></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:LesseeLeasesPolicyTextBlock" id="Tb_jSf6t9Dc10qipNBEq_Jq9Q" continuedAt="Tb_jSf6t9Dc10qipNBEq_Jq9Q_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Leases</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component. </span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">58</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont4" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont5"><ix:continuation id="Tb_jSf6t9Dc10qipNBEq_Jq9Q_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize a right-of-use (&#8220;ROU&#8221;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#8217;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#8217;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Tb_2yjJeb7APk2sHtxWKfAvcg" continuedAt="Tb_2yjJeb7APk2sHtxWKfAvcg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenue recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">59</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont5" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont6"><ix:continuation id="Tb_2yjJeb7APk2sHtxWKfAvcg_cont1" continuedAt="Tb_2yjJeb7APk2sHtxWKfAvcg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a monthly basis based on the customer usage for that period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional Services &amp; Other</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Costs to obtain a contract with a customer</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between </span><span style="-sec-ix-hidden:Hidden_-YLk83amU0eYhwI_cdxmTg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_ucwLD6SFtUC9AbAwH4MvmQ" format="ixt-sec:durwordsen" name="dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" id="Narr_Y38Cgy3RrUWPW3ZgTVI0aA"><span style="font-family:'Verdana';">six years</span></ix:nonNumeric><span style="font-family:'Verdana';">, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.</span></p></ix:continuation></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">60</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont6" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont7"><ix:continuation id="Tb_2yjJeb7APk2sHtxWKfAvcg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contract assets and liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" id="Tb__vWVXyFNlk2IuTQ-7h8J2Q" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="Tb_jRDYna0hukiGX-r4FeYO8A" continuedAt="Tb_jRDYna0hukiGX-r4FeYO8A_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Stock-based compensation plans</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant. &#160;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Employee stock options generally vest over a </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_yEwuwbhAWEaNEeI1R4GsYw"><span style="font-family:'Verdana';">five-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q" format="ixt-sec:durwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Narr_7mmnthUDRkGzZohvC04FaQ"><span style="font-family:'Verdana';">seven years</span></ix:nonNumeric><span style="font-family:'Verdana';"> from the grant date. Non-employee directors&#8217; and officers&#8217; stock options generally have quarterly vesting over a </span><span style="-sec-ix-hidden:Hidden_p0K7MBptOk-gqxxjqsFSWA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Am5CE2jzw0m9ZRTQ1EbpqA" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_441SI5H9-E-5JPrW0bgYzw"><span style="font-family:'Verdana';">five-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#8220;PSUs&#8221;) and restricted share units (&#8220;RSUs&#8221;).</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">61</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont7" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont8"><ix:continuation id="Tb_jRDYna0hukiGX-r4FeYO8A_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs vest at the end of a </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_mLtPSdFzH0iB0KEtspmsUg"><span style="font-family:'Verdana';">three-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#8220;TSR&#8221;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" format="ixt-sec:durwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Narr_18_Lu9ar6k2tHIjiUAAK3A"><span style="font-family:'Verdana';">ten years</span></ix:nonNumeric><span style="font-family:'Verdana';"> from the grant date. New shares are issued from treasury upon the redemption of a PSU.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">RSUs vest annually over a </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_GxBgOmu0PUeaD5H5WG2Ivw"><span style="font-family:'Verdana';">three-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" format="ixt-sec:durwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Narr_ej0Mkgo4i0-OeQw8PHw2NA"><span style="font-family:'Verdana';">ten years</span></ix:nonNumeric><span style="font-family:'Verdana';"> from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#8220;DSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a percentage of the eligible director&#8217;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_0s5zchjXzkSUBO5BeIMepQ" decimals="2" format="ixt:numdotdecimal" name="dsgx:BaseAnnualFeePercent" scale="-2" id="Narr_GJmnUJMQZ0SfNhr-E1Dqyg">50</ix:nonFraction>%</span><span style="font-family:'Verdana';"> of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#8220;CRSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over </span><span style="-sec-ix-hidden:Hidden_xODkettpHUKPFsEYeyXoCQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_ucwLD6SFtUC9AbAwH4MvmQ" format="ixt-sec:durwordsen" name="dsgx:CashSettledRestrictedShareUnitsVestingPeriod" id="Narr_du9kodnba063a-xTPTaGSg"><span style="font-family:'Verdana';">five-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the calendar year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:BusinessCombinationsPolicy" id="Tb_xZ91sUBipUq62k5ThcK_kQ" continuedAt="Tb_xZ91sUBipUq62k5ThcK_kQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Business combinations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We apply the provisions of ASC Topic 805, &#8220;Business Combinations&#8221; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">62</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont8" continuedAt="Tb_YaEvBkmMTkeVW5HJx142YQ_cont9"><ix:continuation id="Tb_xZ91sUBipUq62k5ThcK_kQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#8220;Exit or Disposal Cost Obligations&#8221; (Topic 420) and are accounted for separately from the business combination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:IncomeTaxPolicyTextBlock" id="Tb_gWLptOlYO0Cc0epj8c71sQ" continuedAt="Tb_gWLptOlYO0Cc0epj8c71sQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</span></p></ix:nonNumeric></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">63</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_YaEvBkmMTkeVW5HJx142YQ_cont9"><ix:continuation id="Tb_gWLptOlYO0Cc0epj8c71sQ_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:EarningsPerSharePolicyTextBlock" id="Tb_KhdTincENk203J5yh5R5tQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Earnings per share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.</span></p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="Tb_oBhwKRSfPUqldcu7e6RCZA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Recently adopted accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In November 2023, the FASB issued Accounting Standards Update 2023 - 07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&#8221; (&#8220;ASU 2023 - 07&#8221;). The amendments in ASU 2023 - 07 improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant segment expenses. ASU 2023 - 07 was effective for fiscal years beginning after December 15, 2023, which was our fiscal year that began on February 1, 2024 (fiscal 2025) and interim periods within fiscal years beginning after December 15, 2024, which was our fiscal year beginning February 1, 2025 (fiscal 2026). The Company adopted ASU 2023 - 07 retrospectively in the fourth quarter of fiscal 2025. The adoption of this guidance did not have a material impact on our results of operations. For changes to our disclosures see Note 22.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In December 2023, the FASB issued Accounting Standards Update 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures&#8221; (&#8220;ASU 2023-09&#8221;). The amendments in ASU 2023-09 enhance transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. ASU 2023-09 is effective for annual periods beginning after December 15, 2024, which will be our fiscal year beginning February 1, 2025 (fiscal 2026). Early adoption is permitted for annual financial statements that have not yet been issued or made available for issuance. The Company expects to adopt this guidance in the fourth quarter of fiscal 2026. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In November 2024, the FASB issued Accounting Standards Update 2024-03, &#8220;Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#8221; and issued a subsequent amendment to the initial guidance in January 2025, collectively referred to as &#8220;ASU 2024-03&#8221;. The amendments in ASU 2024-03 require disaggregation of certain expense captions into specified categories in disclosures within the notes to financial statements, which is expected to enhance cost transparency and improve comparability. ASU 2024-03 is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods within annual reporting periods beginning after December 15, 2027. Early adoption is permitted. The Company expects to adopt this guidance in the fourth quarter of fiscal 2028. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">64</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="Tb_6HlV-rv5o0Ge_q3NOFI3cA" continuedAt="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;3&#160;&#8211; Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2025 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On March 28, 2024, Descartes acquired all of the shares of OCR Services, Inc. (&#8220;OCR&#8221;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_3_28_2024_To_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_qO0C59RyfUGntyxTK08Arw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_fuBkEsc7T0m18B1grhLADQ">82.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_XH1uzDuFqEyNp5J-OnRnqw">4.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_vEdY4U3MSk2EYFVP4SvfKA">3.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_DKoqPBpB60KmlE2DJuLHFg">0.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before March 28, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April 19, 2024, Descartes acquired substantially all of the shares of Aerospace Software Developments (&#8220;ASD&#8221;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_HYJLezori0uv_vqfDdkCtw">62.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million (EUR </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_EUR_4XGw_XmhwUmxX-nBeOzlPg" contextRef="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_qEc23XcuNE-1kSeHbpKabw">58.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million), net of cash acquired, which was substantially paid at closing from cash on hand with the remaining </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityInvestingActivities" scale="6" id="Narr_8qDCzVSBykyljuj5uaihuw">3.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million paid in the fourth quarter of fiscal 2025. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_NwssJ3aKYU64tE1PhpR_FA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_xPpOK193nUai9O3cxRrmMg">1.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_NwssJ3aKYU64tE1PhpR_FA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_iQKL0EVABU-fKEm9USk8Ww">1.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April 19, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June 10, 2024, Descartes acquired all of the shares of BoxTop Technologies Limited (&#8220;BoxTop&#8221;), a leading provider of shipment management solutions for small- to mid-sized logistics services providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_6_10_2024_To_6_10_2024_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_NmAG3hWJgEeJ0pSB-Rl8Ug" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_z2zMm3DW-UWseM6RB1EcNg">12.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million (GBP </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_GBP_P5WfE-ByI02morAY7qIWwg" contextRef="Duration_6_10_2024_To_6_10_2024_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_NmAG3hWJgEeJ0pSB-Rl8Ug" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_5FltmhuySkWtqGDtWUNf9g">9.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was nominal with a nominal fair value at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June 10, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On September 17, 2024, Descartes acquired all of the shares of Assure Assist, Inc., doing business as MyCarrierPortal (&#8220;MCP&#8221;), a leading provider of carrier onboarding and risk monitoring solutions for the trucking industry. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_9_17_2024_To_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_tvYOfTRE_Ue2DvczmmkSfA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr__KZ38l-isEOQQSIV5hKBYg">22.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_Ik-ljJBmHEWPxs--p8xxBw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_jPzYCfrASkCWkUY6YNWFXw">6.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on MCP achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_9_17_2024_To_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_tvYOfTRE_Ue2DvczmmkSfA" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_IfLdL4kwlkWSzadJbpxyPg"><span style="font-family:'Verdana';">two years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_Ik-ljJBmHEWPxs--p8xxBw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_DbyXGtNzakGU0a31Dy9sLw">1.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was nominal with a nominal fair value at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before September 17, 2025.</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">65</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_wMhSD_M5N0mmVFUaSF7xTA_1_10"></a><a id="Tc_vkTEthv3b0eq22-7yeGDKg_2_2"></a><a id="Tc_nHfngEtK6E6pIV0Cme8GRg_2_4"></a><a id="Tc_LcGnCSMxL0OTtUnjpk_oaw_2_6"></a><a id="Tc_7uIaPTWUOE6P9CkBOJcgdQ_2_8"></a><a id="Tc_g9-6k-Tu10S4AI16oHtTlg_2_10"></a><a id="Tc_IPpvjbMzvUGKt-QWo7Or0Q_2_12"></a><a id="Tc_nOryhRVsp0yY10RZARQ_eg_3_0"></a><a id="Tc_VgVpOkFL3U2mloqxCj_5fQ_4_0"></a><a id="Tc_fntJk1P0jkKJFlELZM2xrg_5_0"></a><a id="Tc_F7ndJJoIdk6mJdQuIklCqQ_5_2"></a><a id="Tc_JXWo5upRSU6NiIUWA4QK1A_5_4"></a><a id="Tc_gkuzGToSZUCaDcO-IUiplA_5_6"></a><a id="Tc_et4RIjpjSkKdlS8VUxe6bg_6_0"></a><a id="Tc_IXBxwuFOH0y_qjDLJvF5EQ_8_0"></a><a id="Tc_DAIMb1iEOke7hZI7KsNjdw_9_0"></a><a id="Tc_rK7EgRq-M0ypffW132mqqA_10_0"></a><a id="Tc_DTddkY12Ck-4H6F6A-h49w_10_4"></a><a id="Tc_T4dMXicaRUqSG4eY8QrLHg_10_6"></a><a id="Tc_i-k3q7xLGE69IdCkNYVm1Q_10_8"></a><a id="Tc___oFzECL3Uiy7-HNw59fPw_10_10"></a><a id="Tc_X0ljhxE9vUKkMIsfgiG59Q_11_0"></a><a id="Tc_mja1lFKrKE2wMyqRiMRzSQ_11_4"></a><a id="Tc_8kwFW2FUCkeJ6jEEIXsIYw_11_8"></a><a id="Tc_-tJ8AcJs0Uud0NPDGkdnfw_11_10"></a><a id="Tc_2jYXImW_UE6gFNvgNdEEfw_12_0"></a><a id="Tc_HIt0m9JUDUaInV6R3b8OIw_12_8"></a><a id="Tc_ciXa5LxXNkeQMvqlUguC3w_13_0"></a><a id="Tc_Cm77N_j2zUua_priUTVWiw_14_0"></a><a id="Tc_3KZ-8kaghEmKXkIZNP1FHw_15_0"></a><a id="Tc_JtfErgs__kGnwiCB0JzCsA_15_4"></a><a id="Tc_F8xZ9YwBgEuLKhUmpoNtgA_15_8"></a><a id="Tc_MnZmzBPsjEipvSl-MarwPQ_15_10"></a><a id="Tc_qVrB2YA4JUGiKM3cefaE7w_16_0"></a><a id="Tc_h0TpLt5T_UmIrLJvkh0gsQ_16_8"></a><a id="Tc_JXQdWXRwfU2bN4r8TgY49w_16_10"></a><a id="Tc_KWE76bPNw0CmRMCRsbtLKA_17_0"></a><a id="Tc_pt7OKO0g3kuhRqFKZVI5tg_19_0"></a><a id="Tc_NAbXj5cMkU6jy0x5yXS9Eg_20_0"></a><a id="Tc_ZuG71b_fkUCvAHOY_r0RzA_21_0"></a><a id="Tc_uIsBiJn-Pk69QhNsTOTtEA_22_0"></a><a id="Tc_ky_tYe6sBkOadRTL2TTscg_23_0"></a><a id="Tc_K4_amj1g80KannLnvCwmyw_24_0"></a><ix:continuation id="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont1" continuedAt="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';">On October 11, 2024, Descartes acquired all of the shares of Sellercloud LLC and certain assets of Sellercloud Europe Ltd. (collectively referred to as &#8220;Sellercloud&#8221;), a leading provider of omnichannel ecommerce solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_10_11_2024_To_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_HO5D11lrBkmYPtX-53M1_A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_sFilMzk4D0WuZh3qEiVM9w">110.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_QjBISRgLHUKrDMRLQhOAXA">20.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on Sellercloud achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_10_11_2024_To_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_HO5D11lrBkmYPtX-53M1_A" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_ITAjfsAHaE-MmvrJIYpXHA"><span style="font-family:'Verdana';">two years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_7rqhX76lYUegFNLw3Tb5pw">5.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_8-qSAok6J0e1r30L3FY7Cg">1.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_1jxX3GKCK0uHIyW_eorDSg">1.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before October 11, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';">For the businesses acquired during fiscal 2025, we incurred acquisition-related costs of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" id="Narr_-AWZ5iw2ykKzq-GG0EWKvg">4.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the year ended January 31, 2025. The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the year ended January 31, 2025, we have recognized revenues of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_Ygn6f18Eq0a1gcAUnCcdlg">36.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million, and net income of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_hk3JWwNpf02UEAQYrQQI0A">6.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million, from OCR, ASD, BoxTop, MCP and Sellercloud since the date of acquisition in our consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';">The preliminary purchase price allocation for businesses acquired during fiscal 2025, which have not been finalized, is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="Group_ScBa0tLOqEal3kE6yJWf6Q" continuedAt="Group_ScBa0tLOqEal3kE6yJWf6Q_2" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Seller-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OCR</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASD</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">BoxTop</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">MCP</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">cloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, net of cash acquired related to OCR ($</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_qOV6HFWt-02mrMoaNagkAA">5,743</ix:nonFraction></span><span style="font-family:'Verdana';">), ASD ($</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_P5AZltdxj0eI82VV5pnSXA">2,475</ix:nonFraction></span><span style="font-family:'Verdana';">), BoxTop ($</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_MN7LmB2jFkyGTPvIjAgDqg">1,012</ix:nonFraction></span><span style="font-family:'Verdana';">), MCP ($</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_Tkjh_m6LdEemWW5oZTG3aA">2,105</ix:nonFraction></span><span style="font-family:'Verdana';">) and Sellercloud ($</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_N80irs2UN0uEtrO6BQSi1Q">362</ix:nonFraction></span><span style="font-family:'Verdana';">) </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_cTGPBuKhfUmrWSbgo6DPaw_4_2">82,849</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_gFC5hTNu_kqK7ILU-yVaSg_4_4">62,522</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_vxE7B1m_N06qjK2Lj-XfbA_4_6">12,111</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_ol6mYDeH_ESLiwT-wOsCHw_4_8">22,508</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_TT6oQ_ZeJUK6DNFaidEIzg_4_10">110,214</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_bxtzQE7NwkCtU64LT_CNig_4_12">290,204</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_I7QuD4rYd0yOr0IpX1TXGg_5_8">1,679</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_qNJYZO-gl0aO-hBP2oReMQ_5_10">5,364</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_7BoLl3Ud7UOfM9PsB7OIFg_5_12">7,043</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc__W5eztvE6UeaALcAdrXAAw_6_2">164</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_gjaw75c1LEKP6obuFFuvfA_6_4">124</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_hJkZalxcTEKOcARvBeOl6A_6_6">19</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_AbLyagI7_kmRv7j67S4MFg_6_8">217</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_CtLUy3iBukGZFkATVN-XZA_6_10">196</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_D9zjasUQb0a0Zbjwte9SWQ_6_12">248</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_uGRAVLMZfkWKl87BYlgyHw_7_2">83,013</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_ryji4LffIEOVcBLrWD90EA_7_4">62,646</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_JbbgX40wbkG3vDy1CCDEWw_7_6">12,092</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_-rsM88cdck-y_E0842IrhA_7_8">23,970</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_cTAvnykuFkGXA_YEl6FM4g_7_10">115,774</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_OSubnlz6qEudXGC2JU5vbg_7_12">297,495</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_PNutVdofrEqJUQrgnf5dBQ_9_2">4,669</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_63p9aQPByEOdCIp6h4tZuw_9_4">4,445</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_hvuW2QL72UioVxyI13G_ag_9_6">58</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_TiXqzqNr0Ua_IqedB_BEUg_9_8">17</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_xAIV0zhPVEqK0aVkBXEfKw_9_10">933</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_Ov6GnI42yE-rvmPwjEP3TQ_9_12">10,122</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" scale="3" id="Tc_Xzj2rrN7TkSDSS43746E-g_10_2">77</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" scale="3" id="Tc_mRl7GVn76km6VHCUBeyFwg_10_12">77</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" scale="3" id="Tc_ON8cG33eaEOmTCQynf8mbA_11_2">59</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" scale="3" id="Tc_eYe7oNzNI0-sGsN0ptArjg_11_6">186</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" scale="3" id="Tc_Miu69NSGS06zc-nkrcRPBg_11_12">245</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other long-term assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_sONmXpvXS0m6ldmjA8anUw_12_2">13</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_AXUcTD5xHE2P1jeBCiIflA_12_4">6</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_9Qqu6CEzSUGTOD-m6ho-7g_12_6">1</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_cyAROklbUUCcy7YB8sbmhg_12_10">5</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_KQ2MAfpNz0SBSxOktaQGfg_12_12">25</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_Fcuz5VrpSUK4xT2tS0W1dg_13_2">906</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_Un0D7LDZb0iclqxY_aQH5A_13_4">1,108</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_bdde3cjumkeKHLBJvQvlTg_13_6">488</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_zy_HOnx1HUaMaw1Tg9g8rw_13_8">1,160</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_tnso9nP42E2rTGtWEKpbRQ_13_10">437</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_b42el-J_hkKKnXS8yz5Qzw_13_12">4,099</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_gHzwzMBmhEytZ8hOHnAP0Q_14_2">11,145</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_1I3qHhDJo0K_LTqk1mnZkw_14_4">330</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_haNcXWzp-EGQbt-1yY2xAg_14_6">454</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_2g0l0G3kb0eDqe_5xo-9-A_14_8">1,816</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_kooNozE8dEyndapU2AgYqA_14_10">236</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_3n94X0HbfUWwaqr57mi-sQ_14_12">13,981</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" scale="3" id="Tc_qgVpyoUCCky3aXyb3PxSxQ_15_2">59</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" scale="3" id="Tc_BE1i0Zw_hkyrS4YS631WkA_15_6">186</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" scale="3" id="Tc_7f4HXHO7GkGzRQUAKWNgtA_15_12">245</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_7Zj8CblwkEuLQSS_DtzAyQ_16_2">13,107</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_IFvKOXQxDkqW8vMNF2QRSQ_16_4">3,319</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_Uw2Jx2-rnU2NcMLUHZvqOw_16_6">1,743</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_TpPhs_NS4E6157ODRyss-w_16_12">18,169</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_UfS9zbA_uE20isIe4n122Q_17_2">20,399</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_NOJ_Vz8kR067Ct47DkoinA_17_4">306</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_BtKv6Fux5E-Tj84cE23Kjg_17_6">2,626</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_Xz8QWePcNES8bCv8R9h9VA_17_8">2,959</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_gWIe4P5aFk6xUPKVejK51g_17_10">265</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_vdN4mLjirUK8ui5LrMvzOg_17_12">26,025</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SsZT58bRBk6BzNnQmkJmyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_BcbBn7Hj90em3UA68Xw27A_20_2">24,200</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0Kq6hqNILUmlfqshIwUHMQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_grpaSRnY0kOgU4ABrgSknQ_20_4">12,247</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_5MSFaGBI9UGu5fXTYBD4nA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_hs_45FUIY0KQoKJOGPhaBw_20_6">2,926</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_eFKjrCbcpkaWku185-sRjA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_U1FgT-kxUUu8xAGRcoIc4g_20_8">4,900</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_g4CApCNFVE6TfIIl8jGYFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_0lziKrSKakylLglNaes2_A_20_10">17,300</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_DDC0Hz1Gy0Gh41GKq__2jA_20_12">61,573</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IzQBwPmnHU6N_p_6XWnt-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_hGylky_q40G7UGhzIIUD5g_21_2">25,000</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_aRdPuNoY_06Z6fS24w-e4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_RpkWLQxQEkaCOxM8VxT5YQ_21_4">14,377</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_1ur_H23L706TLsvzHVdEsg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_eDXKXMl8skCYZuNVbMFDJA_21_6">3,944</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_fqKkKZezdUqFRmpGKzzAcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_E8A0Iozgl0-K1B2kgv5ddg_21_8">8,300</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_VWsK_JPkokicMxUL9BIFqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_XiB-aYmbQ0eJnQ_iwpxnLA_21_10">25,200</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_OrOo0RIN7kauNnvO1P4SOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_enmXvUI3sk22Us8OGgLA-A_21_12">76,821</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_FX1znndwu0eKx-NYNlEz9A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_qv5FUSoXS0Wsk2DTZ1u9fA_22_2">1,500</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UFano2ye40CbdnSgLQufyA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Cf8WwK7lVUWIlUyLIvNHTQ_22_4">298</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XAgRkcyW0ku4ndq0OvJQRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_O9LN-rbnJUibfIp1o6vDKw_22_6">25</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_oRagQpsYDkOTg7Mf_HaBUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_BSPfXe94P0arrj_rFBuXUQ_22_8">150</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_4Zxf9mU-iUaqJqOl_UCYDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_UMvPrT6CMkuxShBDGcZEuA_22_10">250</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_1Ugkt4HnE028rDb177UUVA_22_12">2,223</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_WiXfedSYykGt5cV4iApCxA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_M1RfdJWDwEaCNYDm4qr56A_23_2">600</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_MSEXOfvBHEO1MbnoTetL_g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_nHT-nEitekqnPbVsbDWkDQ_23_4">426</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_BFhMvP_QH0ittuKAN28dFA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_VVLAR-Og5ES-p6ICm97nIg_23_6">76</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LL6k8xs0iUOY5Myd1LnLHw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Inyk8eycq0CGHWq0d3ncdw_23_8">150</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NCNRFy-nNEip4dbUH0Qbyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_WJafOjgAGUKgTfTX7tRjvg_23_10">700</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_1_rNBHxfl0iG_TzOkW39EQ_23_12">1,952</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_sf5NN25aPU-xTqjdPauzjg_24_2">52,112</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_cMrH13LhgESEgss68quW5A_24_4">35,604</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_cUOp8xYzaEybKW0-ByUA3A_24_6">7,747</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_coaNCCrDekKoKp9AsrUwjw_24_8">13,429</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_j4E2nbgfvEumpUkVkndlkA_24_10">72,059</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_Id7NLW7k5kSoFI5gceMItA_24_12">180,951</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_GHSQ9N708kO5T294ozW1QA_25_2">83,013</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_PRncjyeAH0GVE-9l0yCW-A_25_4">62,646</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_F9l_NJ6J7Um-r0W2ROZDQA_25_6">12,092</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_MBAokqNojkqlnrBGXemkFQ_25_8">23,970</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_If02Kh6Xm0uupFP-jQvy7A_25_10">115,774</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_8G3BIygn70C2Ilni39D4iA_25_12">297,495</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, &#8220;Business Combinations&#8221;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one year from the acquisition date.</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">66</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_xSjOOUE2ikOl-DoThBXpAg_1_2"></a><a id="Tc_YJNdXEURq0ukokatQgwjlg_1_4"></a><a id="Tc_xhGtmR3p1kuv_HoVdJNoNw_1_6"></a><a id="Tc_W_bAm1gQEEaT5k4haJRunw_1_8"></a><a id="Tc_G4M3cUTPnUmkh1tepEzmVg_1_10"></a><a id="Tc_NoeT0K8tOUSSXy77Ity09w_2_0"></a><a id="Tc_Lc0nDGH57ECSo33im05XJA_3_0"></a><a id="Tc_QZYidM39oUSVCc8SdUs70Q_4_0"></a><a id="Tc_CvIPzFSTl02FPKon74_UqA_4_4"></a><a id="Tc_93N-IKGdHEeqAXlYcb-hXw_5_0"></a><ix:continuation id="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont2" continuedAt="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" id="Group_oSrT3-IdkkK_3w6Mv7BJ1g" continuedAt="Group_oSrT3-IdkkK_3w6Mv7BJ1g_2" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OCR</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASD</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">BoxTop</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">MCP</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Seller-cloud</b></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SsZT58bRBk6BzNnQmkJmyA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_mVXbdJQifkmZfNskOrEPwQ_2_2"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0Kq6hqNILUmlfqshIwUHMQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_IvGRO8-e3kKYlM0CvaMQ_Q_2_4"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_5MSFaGBI9UGu5fXTYBD4nA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_t2D40fHxyUmnrhrzZ23xOQ_2_6"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_eFKjrCbcpkaWku185-sRjA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_UL8gZEBIIUCPjsUjLz_l9A_2_8"><span style="font-family:'Verdana';">8 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_g4CApCNFVE6TfIIl8jGYFA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_GG0IEwYwI0S_PAGiZ1L7Zg_2_10"><span style="font-family:'Verdana';">12 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IzQBwPmnHU6N_p_6XWnt-Q" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_qbc5mqGIzkyum3MqXtxzjA_3_2"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_aRdPuNoY_06Z6fS24w-e4A" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_yDY0nVbLLk6CZN9DYOQfyQ_3_4"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_1ur_H23L706TLsvzHVdEsg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_-FnyqkC040-i2N062YfG-w_3_6"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_fqKkKZezdUqFRmpGKzzAcw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_Roqi5Hqk1k6Lm81YT3ar0Q_3_8"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_VWsK_JPkokicMxUL9BIFqw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_fbqEOhD7sU619bZenh3Org_3_10"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_FX1znndwu0eKx-NYNlEz9A" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_b5iEvE4R10ynLxrjZpHfVQ_4_2"><span style="font-family:'Verdana';">10 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="-sec-ix-hidden:Hidden_N7pYUxv4gkKjaFXQZFbtjA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">3</span></span><span style="font-family:'Verdana';">-</span><ix:nonNumeric contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_dp8aGXVQEEKS4bMfY0OyLQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_-S1PVrpYqU2_Ga1Pi8FxZg"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XAgRkcyW0ku4ndq0OvJQRQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_Qw1aIVBwckCEeNr3r1ndyA_4_6"><span style="font-family:'Verdana';">2 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_oRagQpsYDkOTg7Mf_HaBUQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_y1vFoYHyckOqOcU55l2uig_4_8"><span style="font-family:'Verdana';">3 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_4Zxf9mU-iUaqJqOl_UCYDw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_xi5y9m-8Pkmb1UI4_X8PYg_4_10"><span style="font-family:'Verdana';">3 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_WiXfedSYykGt5cV4iApCxA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_ztm8kKZnxEeymf3UU4Xx1A_5_2"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_MSEXOfvBHEO1MbnoTetL_g" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_QMrAKcQWeUW3SpAdl1_2UQ_5_4"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_BFhMvP_QH0ittuKAN28dFA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_JlyAYUUoJ0Oxe1W1EnsVBA_5_6"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LL6k8xs0iUOY5Myd1LnLHw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_iT-7idHR5UOT5ry696MJ8A_5_8"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NCNRFy-nNEip4dbUH0Qbyg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_1qqsTs6Z6EKOvYuYUMlHwg_5_10"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the OCR, ASD, BoxTop, MCP and Sellercloud acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the OCR, ASD and BoxTop acquisitions are not deductible for tax purposes. The goodwill arising from the MCP and Sellercloud acquisitions are deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2024 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (&#8220;GroundCloud&#8221;), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_6vkXrDOz9UGLGWWNWYa_sw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_8kk6KiC9Y0yDPwryTTZe6A">136.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_7fPnl2x90UO9TE11uPqgBQ">80.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on GroundCloud achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_6vkXrDOz9UGLGWWNWYa_sw" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_v2MWC5x0rUCDiFmtJJzxJQ"><span style="font-family:'Verdana';">two years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_ZFwSksob1UCA_C-f0unKbA">19.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_hfayOIv7jk-f4z7T5PHrYA">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_xrm_9N9TVUikw18yWzNkDg">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2024 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April 20, 2023, Descartes acquired substantially all of the assets of Localz Pty Ltd.(&#8220;Localz&#8221;), a cloud-based customer engagement platform for day-of-service interaction and order management. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_4_20_2023_To_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_o7F5xmIUe0ePgrT_fYZavg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_kqCTTCl7IE2cPWqDlzqWZA">5.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_7JM72RJ0g0-3O0q3iKl4Vg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_w-fO6RaFj0Sxal0MRbZ8OA">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_7JM72RJ0g0-3O0q3iKl4Vg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_VkjjFFkGSUixnqHNyJTB4w">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal.</span> <span style="font-family:'Verdana';">The purchase price was finalized in the three month period ended April 30, 2024 with no adjustments.</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">67</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_LXpT2GGNPkyPJPz68EmMnQ_1_2"></a><a id="Tc_G-hUYW0-O0O8mOB8PW1PYQ_2_2"></a><a id="Tc_bwM7DSCo60SlQM2T_aPuqg_2_4"></a><a id="Tc_fs9NY-IDGkaINxhRkgXG6w_2_6"></a><a id="Tc_j3NBtwbhw0Gwo1lBiu1L5A_3_0"></a><a id="Tc_mquDRqNxD0u8kSZxHhVeNw_4_0"></a><a id="Tc_ProvwvuT8UqtePnmBbQBQg_5_0"></a><a id="Tc_4bI9jtlc7ku_goN0hwC0yQ_5_4"></a><a id="Tc_lGbgvE_5CUqQiDm3fc-dcw_6_0"></a><a id="Tc_y8M9J51Qyk6ugZcsINLltA_8_0"></a><a id="Tc_YjIsAC0eb0SJS28bPxhOZg_9_0"></a><a id="Tc_jstH_aik0kWG4tULgyoYiA_10_0"></a><a id="Tc_lXzp4pqCTUyHn6D22hLElA_10_4"></a><a id="Tc_4KLjEUhBA068soK3Oj4izA_11_0"></a><a id="Tc_p8HAs3Y9B0aXITRgc6YoKQ_12_0"></a><a id="Tc_ClbrDp9alEK1PFY3my90pg_13_0"></a><a id="Tc_K0D6zv_M3EGfdxvA61W79g_13_4"></a><a id="Tc_297e1M4JtkyW1TLSwYJpxw_14_0"></a><a id="Tc_PmIGXw_oiUu-c5lRKRl5Iw_16_0"></a><a id="Tc_MtHhIVfsnUOtDtsXaCqKUw_17_0"></a><a id="Tc_GSRJ37h7j0a20RpbgOZKCQ_17_4"></a><a id="Tc_hZIHVBfZ7k25vVfKhrhrDA_18_0"></a><a id="Tc_pqTvJj-qWky6nMTtPXH-SQ_19_0"></a><a id="Tc_5pflnzQWfUqIXGBl7xYmeg_19_4"></a><a id="Tc_SV8Rf5ZLQEGL0e8HSmB80A_20_0"></a><a id="Tc_m8Et1S2i0kyr4XV75jR2mQ_20_4"></a><a id="Tc_ccdGEHMsJEeS1D7mPvzGgg_21_0"></a><a id="Tc_ZvmHhy5xtkaSFYo7OX21Sg_1_2"></a><a id="Tc_BdNxMIp8w0yk-at2bRhq_A_1_4"></a><a id="Tc_kLd8wDGnXUeFOpQ2vwQ7jw_2_0"></a><a id="Tc_cbuaMR4h8Eyijy9a1DCqDg_2_4"></a><a id="Tc_g62ZgI52nkqEy597x0oRAg_3_0"></a><a id="Tc_QauQcTj30k-ud56pz1nQ2w_4_0"></a><a id="Tc_RQ4XFusyaEuxzVUcjK1bEQ_4_4"></a><a id="Tc_acL5LbtSfEiLIeeL-CteQQ_5_0"></a><a id="Tc_-_gJSFwAB0CucZ0AS84dZQ_5_4"></a><ix:continuation id="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont3" continuedAt="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont4"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The final purchase price allocations for businesses we acquired in 2024 are as follows:</span></p><ix:continuation id="Group_ScBa0tLOqEal3kE6yJWf6Q_2" continuedAt="Group_ScBa0tLOqEal3kE6yJWf6Q_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Ground-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Localz</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to GroundCloud (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_oiTwzXI4PUem7SGxabyFUA">4,381</ix:nonFraction></span><span style="font-family:'Verdana';">) and Localz (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_noAfR_NEP0y9X102prwrJg">Nil</ix:nonFraction></span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_3D6luJtf6UyxThXLkJeMbQ_4_2">136,843</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_U-0S2FnOTk-aJ-m5J7nnXw_4_4">5,857</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_OXnBRqzrcU6rCu8TYE49hw_4_6">142,700</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_5kA6z16p0UGSvhRE8v5pqA_5_2">19,550</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_2Cfh1oFOTU24-mL5UaOCRw_5_6">19,550</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_rj3qRAuyj0SXx9ILF9fYIw_6_2">458</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_p2ChihO_00ilG6jmqNzNmQ_6_4">5</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_q3dItbiqQkG21wXRUwdbKw_6_6">453</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_qemFESjlvUi1BhJg29gfCg_7_2">156,851</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_mU5MW33jEUqogGR5_eawaA_7_4">5,852</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_doGwvg_HhEChoGrbT8iwVA_7_6">162,703</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_g-aSrVUWfUmLTfkZqzl8fQ_9_2">3,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_PbTc-iMdrEaNBGgDbZOMBA_9_4">619</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_5BDlzKqUgEGripQ172zmYw_9_6">3,864</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Right-of-use Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" scale="3" id="Tc_dIMP-v1l60mo1tuzY1lV2A_10_2">144</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" scale="3" id="Tc_KwJpD2NWHUmglLu8tG9bLQ_10_6">144</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_VShzjvVsy0Gy0y8FtJh5AA_11_2">3,308</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_f7OehmGo-Ei1zYcLZj-JrQ_11_4">227</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_DPmu_DumIke9C8YEN2L0fw_11_6">3,535</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc__oUTL_jy40O2G4Ro12an4w_12_2">136</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_9BQZZaBKnUyQXfnxkijUVw_12_4">1,465</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_7a-sEoxP4kGPUO-V5WtUkQ_12_6">1,601</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" scale="3" id="Tc_JE8-5KpQkkqs4kIeRF_-Og_13_2">144</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" scale="3" id="Tc_z8fHiU3bk0OrOngqjMB6oA_13_6">144</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_rEWWZePYPUKJZkk_xHJ6uw_14_2">199</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_OOwkoLLMpk6L9p4l4bQKgg_14_4">1,073</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_0Z8MBUUGlEi6QkUqueXCkw_14_6">1,272</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_22pwhlNQFU660crmwXHk8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_xQhs54QP40iB9Ev5-EKAYw_17_2">29,400</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_9z3KbJaiN06s8sjpPnQrIg_17_6">29,400</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_FlB4_ErBXUKA1rZyTh8w6A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_oA8Etl7sN06P74CLzODXMg_18_2">42,800</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_MdF6hTdL3EecK7y62_QGfw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_1Gg0CvbErESIDzAlfFq0XQ_18_4">5,971</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_xyzUOHeSHUyQtEli-A8I0Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rStq8nU8q02MOqBmyUt3tw_18_6">48,771</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WxgGCSJgX0aN52PyEaAtWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_dfb-SljvyEGAe43fujgzPQ_19_2">1,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_qlh1bD9SSES6wBhpK9L05Q_19_6">1,100</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NjsJk_WEiUqEBzTApzglAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_YXKbSbazkUelCakctyVGuw_20_2">1,000</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_QurvfMQLpUm5IMfE3qHzbQ_20_6">1,000</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_83jFJTECUUK8T5DNI7nmTA_21_2">82,750</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_aMJPiobXc0ydh3I-sC78Pg_21_4">954</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_4ulPolqWZESh3NY1-O-q_g_21_6">83,704</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_Y6UnU08fU0qPbEFP7RnP0g_22_2">156,851</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_YCPINUzodEyqdxuKwad2nQ_22_4">5,852</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_fkXANnuJbU6g4EQ8SuCBKg_22_6">162,703</ix:nonFraction></span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><ix:continuation id="Group_oSrT3-IdkkK_3w6Mv7BJ1g_2" continuedAt="Group_oSrT3-IdkkK_3w6Mv7BJ1g_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Aptos Narrow';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">GroundCloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Localz</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_22pwhlNQFU660crmwXHk8Q" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_M3b5AYRei0mKx0WGD4rjoQ_2_2"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_FlB4_ErBXUKA1rZyTh8w6A" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_aMSL1E72nkKZWVLExaFqjA_3_2"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_MdF6hTdL3EecK7y62_QGfw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_w1Ey1AcKbUa18zAi29YMGw_3_4"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WxgGCSJgX0aN52PyEaAtWw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_sPBGewrxVUaChB0K8-73pQ_4_2"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NjsJk_WEiUqEBzTApzglAg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_WtyUaVdcxEGAVh-GjQwp3w_5_2"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The goodwill on the GroundCloud and Localz acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the GroundCloud and Localz acquisitions is deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2023 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#8220;NetCHB&#8221;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JD05O5TIF0WBwBI7YRZTow" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_FyRUOhI-ekuYXpiz_B7Ugw">38.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_6RXlM2r7aU2XIrnR43iQRA">60.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on NetCHB achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JD05O5TIF0WBwBI7YRZTow" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_1yobxHQSMU2a-v37dX15Vg"><span style="font-family:'Verdana';">two&#160;years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_GVSD3EqC1ka1FuBeT03e0A">13.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_gvUG1UAeY0-muq-afsC6dg">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_w4Nv6KLsa0SviOQ9yl6D3A">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On April&#160;21, 2022, Descartes acquired substantially all of the assets of Foxtrot,&#160;Inc. (&#8220;Foxtrot&#8221;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_gR--3dPXjUqawPWHxblafw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_ZpRUEcKCXUKbHf2tAYp2Wg">4.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_mUyA6OhXH0izkqzqdHOlfw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_B_0-X6keFEOC2yIzcpb59g">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_mUyA6OhXH0izkqzqdHOlfw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_ROEei1nMYE2EOyRTQfIqUw">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">68</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_G9JKXFYjrkewyyLQ4Ow9ig_1_8"></a><a id="Tc_Oo2T3JUzv06xIAmIel3XAQ_2_2"></a><a id="Tc_5k4_fFjx4kGnWz6RUOprrg_2_4"></a><a id="Tc_0kyXQbLBtEqFoMlYJXsHqA_2_6"></a><a id="Tc_FOZNG41RNEqZkZYXeu0Y9g_2_8"></a><a id="Tc_lrlQwr3sgUaFyPoOJfBL-A_2_10"></a><a id="Tc_N_kbaYeu40ui40tOpeKLBA_3_0"></a><a id="Tc_8qOU_D531EKaxlqiNeavpg_4_0"></a><a id="Tc_uOgxHpm_uU6vI8ManWegcg_5_0"></a><a id="Tc_SaVUsDCseU6LOARy24eQLg_5_4"></a><a id="Tc_w8JW3iq0bEWvthDCfTLqGg_6_0"></a><a id="Tc__-SGC-UHd0SuRQSQIzMzcw_8_0"></a><a id="Tc_mRYT_4fAUUyKIXT34gxvzQ_9_0"></a><a id="Tc_ezu04YclSkytibVTBp6zXg_10_0"></a><a id="Tc_s0yma2HKkEW5UQyEfnx11Q_11_0"></a><a id="Tc_-VCXXK7XVUeP7fE7wJGNcw_11_2"></a><a id="Tc_EcQGnD-JnkqG2fN-MgnD3w_12_0"></a><a id="Tc_CzLsThgdVkOeoXden_DVxA_14_0"></a><a id="Tc_TgnLEGZ43kWbe-cSWkezjA_15_0"></a><a id="Tc_xaUuXJzyY0mV3VW4K9X88A_16_0"></a><a id="Tc_ZugBnRHXMEebAWVj-dGdHw_17_0"></a><a id="Tc_8yddHmNTVUWY0AchYVTw4Q_17_4"></a><a id="Tc_cEfLbyrIKki0mSPE4X22YQ_18_0"></a><a id="Tc_eHQnn697NUGegkG2_EwXEg_18_4"></a><a id="Tc_UBM04urCs0u7nf8uKVi5Gg_19_0"></a><ix:continuation id="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont4" continuedAt="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont5"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">nominal. The purchase price was finalized in the three month period ended April 30, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June&#160;3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#8220;XPS&#8221;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_ejOpE2bBH0yIbjoqBg6D5A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_-OaUQ4aybk2qcgdmUD2ymg">61.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_fodd054SuUajvOA4mUlQSw">75.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on XPS achieving revenue-based targets over the first </span><span style="-sec-ix-hidden:Hidden_wLzvF18aMkSoqfV2k_2U7A;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">two&#160;years</span></span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_RZtApaLkO0iB6f5OtoaaWQ">9.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_gsWzjSHRJEGHv7-oBYH-Cg">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_bTm3A1x_PUKBSZ_M57h_sw">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended July 31, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On January 5, 2023, Descartes acquired all of the shares of Tran-Soft, LLC, doing business as Supply Vision (&#8220;Supply Vision&#8221;), a provider of shipment management solutions for North American Logistics Services Providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_1_5_2023_To_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_KsaVe4hx50-16OKx7jq0Uw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_TxbC4bcqmU6sk85ZGbbb5g">11.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_nS28SXWShEy0dSdBQSjb6w">3.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on Supply Vision achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_1_5_2023_To_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_KsaVe4hx50-16OKx7jq0Uw" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_aOg8QdXHuEe6IbLCLtScfw"><span style="font-family:'Verdana';">two years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_KfKjBRmGlUWUb5huzIJPZg">2.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_1D34TCCeok-3UNE-pIZsJA">0.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_uIf6-boqbUSLpkAy3W6llA">0.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2024 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The final purchase price allocations for businesses we acquired in 2023 are as follows:</span></p><ix:continuation id="Group_ScBa0tLOqEal3kE6yJWf6Q_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_nrq-S7M7tUS77kJ13m2AFg">658</ix:nonFraction></span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_Aq-ZBYyVBEi6I3Ie_DKC5A">Nil</ix:nonFraction></span><span style="font-family:'Verdana';">), XPS (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_R2gUrfQFbU-wc_ka7IEjlA">3,932</ix:nonFraction></span><span style="font-family:'Verdana';">) and Supply Vision (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_47vezVxsZE6M1dkgltT1Bg">413</ix:nonFraction></span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_aOHmmIC-70WLGG3U-8uLOQ_4_2">38,664</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_qKAO4aI6TkyNbdpLwT5m_w_4_4">4,228</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_Q1KNh3rI2E25vBpQdEsVmw_4_6">61,096</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_wwzXPhLevU-OxBN4itNdjA_4_8">11,573</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_Zj68Rk9VDkiYEP9jmbxOxQ_4_10">115,561</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_bsZvoQDHvEq8FVXXQ8b8YQ_5_2">13,948</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_ywAMxgJJxkGnabUtSkI1Ig_5_6">9,425</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_TOu_PRAfdkapK7IWz7IEtg_5_8">2,670</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_yKX_EV8aXk6ucy2kJAb68Q_5_10">26,043</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_j882ja2srUydP1D6suZGYw_6_2">51</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_2R9KMgTuBkyFBauqtD3Dbg_6_4">66</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_RxZCl7OvSkSB4pDcvBRGcw_6_6">978</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_cnlYQnIW4UaKigrBYbqVyA_6_8">4</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_F6mLC0rz-EWdwBWaAqcbKQ_6_10">1,099</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_6p_OU-3f6kiduPFrgpZvgA_7_2">52,663</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_0aSrsLqCLEWG6lp33b2eUg_7_4">4,294</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_FKs4QdhzRkaBqJUbk01Ghw_7_6">71,499</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_nLpgnWked0SG3zQkqNrEKw_7_8">14,247</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_nCh1Yh2-mEWFlPoX4XFuoQ_7_10">142,703</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_1NoZmNdGykyy4dAqRAwaZQ_9_2">469</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_5Bn1cCx240OwgKq7C2_tYQ_9_4">835</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_D3xiow0JkUOYoZQoYbrH5Q_9_6">2,449</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_RJE6pCRyF0yhm4QpYRbW7g_9_8">718</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_rGLIjCpIjk-ZKEjjQSRcLg_9_10">4,471</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_cqQm_85WWUW4oMfR4m6AZA_10_2">367</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_qcwBNQdrUkC0XoVLGbascA_10_4">22</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_BgZpZtW11UWHtnUvXBJXYw_10_6">1,483</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_rfxmvYnQDECkmTV3jgjjlQ_10_8">532</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_1S1iGlCZ-UqPRU8WyeIGtw_10_10">2,404</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_PR1iE3iFqE6TdgUPBEFLRw_11_4">336</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_08SDmD50YU6OEJye__i4Gw_11_6">2,196</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_PZnGETAZLk-0qSZ3dheB3Q_11_8">132</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_mmHTx8d7Wk2JQGiAKHFemQ_11_10">2,664</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_3X950tgz9kGVMcYTjw5cZQ_12_2">102</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_ze_bgoKbhEetYThWQT2aPg_12_4">477</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_OFvD-nrKzUaZF94xqfcWUA_12_6">1,230</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_RqyMdp5gtESBKYl8ntVY6g_12_8">54</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_ynP_dXmtQ0Cj_gUeZar4_g_12_10">597</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kGPsY3Cz706PbJT6vHzIMw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_LJWvw36RR0KJkneYtAZvOA_15_2">10,900</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_KSsS8j-Tyk-gl6vx67nrzw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Oc6hbkdlr0a665Va9U5D2w_15_4">650</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_jL5OdN2Qx0uhN7dNTDwzTw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_8OAP6yYemkOd0HpyDdmibQ_15_6">8,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_RllDwoMvQE6PCVKNw1VOqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_iIbxVJ3jgkeEmtN5hWN7Dg_15_8">2,500</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kCn4xihjHkq1EEzRRRPyJA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_QTg2Bxh89UiCcdci6EDTEA_15_10">22,150</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_3HI2fdXurUCIMe3KRuO2Zw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_NwYQ6bNR-EqcW20XmlTxLQ_16_2">14,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_jPSgcZEsR0OUVtGerst6xQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_pG5oBq-Md0CliK2f6gg8ug_16_4">1,640</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_pC2FGINSs0CdHx3zVD1aAA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rWQ9IeZzakiiRhJY5ZmGnQ_16_6">20,000</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_63poA6l9G0ad9z4BCgD5HQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_hjBNBKgzdk60uy5YIh9mfg_16_8">4,700</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_BiCxeZxsFkWsGJKDAtmIaw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_SQahXuqXaUiTxv-mTUKZ8A_16_10">40,440</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8ocP7kndg0u3Aie1GIadaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_-D8xJEXHz02iymldZeJxIA_17_2">64</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fAekMMIVdkax2baAgeBTsw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_UxXqe5tYhkuAILJWYyFUVg_17_6">100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JtJwhrRn5kGCxdbhc5gP-A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_b3KavRmPPEGnThoKSeDPCw_17_8">30</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ulAK44TzGEuOX1UW0y7_wA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_ppSmsdNN-0iWdbZw-_J1wQ_17_10">194</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_H_wy3UKvwUOrW3JWXZwJ8g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_IBkOjQDrMkafjLRJVseqtg_18_2">700</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_QnoBJTXEjUiI-WvDuNK09Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_wBYvnov4vku3Gf1Tp_jTvA_18_6">1,000</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Y4Vr9kb6hkOULI_kBiL4hw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_KkrcUYI-4UiH88xAN96hpg_18_8">200</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_djdDJIBL50umyaxlozC1Uw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_EF-r6oonFEa3acH6WHAopg_18_10">1,900</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_HRGsh5FW_kau4-yjjR5ewQ_19_2">26,797</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_kOkmNnlQF027zATUVRQFkQ_19_4">1,527</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_kSJvrwUEMkycE638z_eLPA_19_6">43,529</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_-msYiQEsx0KWnN9ervDpWg_19_8">6,763</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_MbXckTSR2kmB7SCT8unCbw_19_10">78,616</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_7wy4FFuZW0uSCjqC2nrovg_20_2">52,663</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_QtT6qBehsUqGogJOunRQ-w_20_4">4,294</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_in8PK81m8kiYwp9rNKtFNw_20_6">71,499</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_sLiMwuiXM06A4A6F1NyK_g_20_8">14,247</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_XaXNbfcis0uGoa-llNg_hg_20_10">142,703</ix:nonFraction></span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">69</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_6fbaf925_69d5_4e2e_a72d_1d45048958a6"></a><a id="Tc_UlVmnSTz70efgGeSveAzkQ_1_8"></a><a id="Tc_hXQAzvSWRUiW5VGzDjByXA_2_2"></a><a id="Tc_48KmZpjVhE-Zm0OZts9PPw_2_4"></a><a id="Tc_HfuNwh8xrU6JzRzH7zFZnQ_2_6"></a><a id="Tc_cupm0qnAZUOBsRQMtAIPww_2_8"></a><a id="Tc_EkLoLwtpQ0mm2ZZyt9-CVg_3_0"></a><a id="Tc_V4eCZS-umkKrvA3mJo-O6Q_4_0"></a><a id="Tc_nB3WeodKNkWUvsqliIk-VQ_5_0"></a><a id="Tc_UoZRKmXDv0afOWm1l-_w7g_5_4"></a><a id="Tc_ufRW6UpcfU-im917ZJ-0pQ_6_0"></a><a id="Tc_WTmO8teBXUGh5kVjT_G19w_6_4"></a><a id="Tc_zsUEGPdt8Eqhh4o9B3vX_Q_1_2"></a><a id="Tc_Cf-rKcfCa0qGL8jDayHlxA_1_4"></a><a id="Tc_O-OSGDaiq0KrqKKnsi0X1Q_1_6"></a><a id="Tc_7q_YoVBgiEeAXdjP-3P7kA_2_0"></a><a id="Tc_ZXhFJiCaW02zwHhGMVj5uQ_2_2"></a><a id="Tc_YVuEmvAkkkCkjgOaLutc2Q_2_4"></a><a id="Tc_64i9mBi-80qNg0UiE3tm5A_2_6"></a><a id="Tc_sHT_O1JBSE6SzT9fFf7YBg_4_0"></a><a id="Tc_9d8bdC-Aj0-yWhKaB3pcLg_5_0"></a><a id="Tc_nRVtiUAkBUeE7K6PNr2itA_6_0"></a><a id="Tc_ZX8V3TSW2kKq9tbxOI8JPg_7_0"></a><a id="Tc_mDNDxy02aUCBfYlLFQLmow_8_0"></a><ix:continuation id="Tb_6HlV-rv5o0Ge_q3NOFI3cA_cont5"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><ix:continuation id="Group_oSrT3-IdkkK_3w6Mv7BJ1g_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kGPsY3Cz706PbJT6vHzIMw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_cwRKgNQ7AUuDG1zpHJlKBg_3_2"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_KSsS8j-Tyk-gl6vx67nrzw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_ObmH-arjNUWKaR4LkpdJxA_3_4"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_jL5OdN2Qx0uhN7dNTDwzTw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_R5TJokuDoUSGZZDo004epA_3_6"><span style="font-family:'Verdana';">11 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_RllDwoMvQE6PCVKNw1VOqw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_Dx8WrMIovkuyjHloAzYCCQ_3_8"><span style="font-family:'Verdana';">11 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_3HI2fdXurUCIMe3KRuO2Zw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_s1XgS6kqQEKE0xBC7C9rTg_4_2"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_jPSgcZEsR0OUVtGerst6xQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_onyVbo5JvkWotJbUjlB6vQ_4_4"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_pC2FGINSs0CdHx3zVD1aAA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_O5jgVsNkrES5-LsmHPGlIQ_4_6"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_63poA6l9G0ad9z4BCgD5HQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_-LAHoFTBX0eNp6MsnbpzTQ_4_8"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8ocP7kndg0u3Aie1GIadaA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_MIXugFbd50u_h5HukrZjQA_5_2"><span style="font-family:'Verdana';">2 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fAekMMIVdkax2baAgeBTsw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_ScVbvwulvE2QA6J8YJWotw_5_6"><span style="font-family:'Verdana';">2 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JtJwhrRn5kGCxdbhc5gP-A" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_Z_VPl6V-PEOQu3tatcHBjw_5_8"><span style="font-family:'Verdana';">9 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_H_wy3UKvwUOrW3JWXZwJ8g" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_SVNzlfmqpk6U2G4A9-mn5w_6_2"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_QnoBJTXEjUiI-WvDuNK09Q" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_xeQIQQWk_kmO20C24hJCFg_6_6"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Y4Vr9kb6hkOULI_kBiL4hw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_x8f3mE2BaUKF9hTxkV_aqQ_6_8"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the NetCHB, Foxtrot, XPS and Supply Vision acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot, XPS and Supply Vision acquisitions is deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired Sellercloud, MCP, BoxTop, ASD, OCR, Localz, GroundCloud, Supply Vision, XPS, Foxtrot and NetCHB as of February 1, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of Sellercloud, MCP, BoxTop, ASD, OCR, Localz, GroundCloud, Supply Vision, XPS, Foxtrot and NetCHB occurred at February 1, 2022, or to project our results of operations for any future period.</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:BusinessAcquisitionProFormaInformationTextBlock" id="Tb_MM1JoDKOLk2YgT8hbUd56Q" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_0c0Fei6BHkKhwEougjSjow_4_2">675,556</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_ws4ByHLHBU-GkY1YZ1V4Ng_4_4">626,643</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_Zqn3ImzK-0mz7N15ghtqhQ_4_6">581,614</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_qMJd1CmWhkaJ7WRDybrnWQ_5_2">142,171</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_xK1RanwYyk68e9WVJGlMNQ_5_4">107,548</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_VXKT0Ufo0EmyZCVA9xR5sQ_5_6">90,488</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_1DC6PH5oakSnAFalJEL9Gg_7_2">1.66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_d2PxgH6S90WDBBfywnUrAw_7_4">1.26</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_GxTF4DX5ukyoHLtWglUAJA_7_6">1.07</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_J5BqmOKno0efB28e4xLTRQ_8_2">1.63</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_dsGNWVPCaEWGX2-7jslusQ_8_4">1.24</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_XTFGT-sVmEu9Z1nxEdSOIA_8_6">1.05</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:FairValueDisclosuresTextBlock" id="Tb_x4JKKUKdKUW60G8rC4cDyg" continuedAt="Tb_x4JKKUKdKUW60G8rC4cDyg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;4&#160;&#8211; Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">ASC Topic 820 &#8220;Fair Value Measurements and Disclosures&#8221; (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1&#8212;inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2&#8212;inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3&#8212;inputs are generally unobservable and typically reflect management&#8217;s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques that include option pricing models, discounted cash flow models, and similar techniques.</span></td></tr></table><div style="margin-top:12pt;"></div></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">70</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_498c5ec0_1ca0_49f8_a5e5_eb167a27e8fd"></a><a id="Tc_qRFn6exM_UuG0nLRErEhSA_1_2"></a><a id="Tc_GfKWufL0EkiCy5lUwlExIQ_1_4"></a><a id="Tc_cNa_aVTQL0aUYvjCHY37Pg_1_6"></a><a id="Tc_2yR5Kj-LfkOB2toLscq4OQ_1_8"></a><a id="Tc_2zvYSdpHwEubDs0pA5VHag_2_0"></a><a id="Tc_CSPhXLrp6kuqif9IB6cU1A_3_0"></a><a id="Tc_B16hWNqQOky0iOJt4k8aMw_3_2"></a><a id="Tc_tnMfNPnJd0O1rgpBg9TilA_3_6"></a><a id="Tc_eMGW0Qw3jE20zKZqDjiGIw_5_0"></a><a id="Tc_RL3wVDVO2E6QjhqbWSGYzw_6_0"></a><a id="Tc_KBOvMNP9P0KCdbOzNU5rqA_6_2"></a><a id="Tc_-nxsYehff0WNl2DV5vIBDg_6_4"></a><a id="_6299ed69_7cde_474c_a140_bf15b4987d20"></a><a id="Tc_zfrTjw3hrU2TjSb52vV0oQ_1_2"></a><a id="Tc_QeAiNGlg80-6B2BZ01JxnA_1_4"></a><a id="Tc_7JQI9_iJdk2rjeM-q18sAg_1_6"></a><a id="Tc_nyYZ3fxnQ0m4UIef-MUEQw_1_8"></a><a id="Tc_bv14XH27S06E9HoLjU42gg_2_0"></a><a id="Tc_E07h-n3G9k6BswOVWzTsKw_3_0"></a><a id="Tc_yZoLBX3XX0iDQPUTnKP8Ag_3_2"></a><a id="Tc_bdQzZ51LVUiG59ihLVEOmQ_3_6"></a><a id="Tc_BtU_eb6dzECj2BLYsPWmPQ_5_0"></a><a id="Tc_SS1qofmJ-EGQz8Cd0NkooQ_6_0"></a><a id="Tc_fdz09R3MtEqegrfLF27n1g_6_2"></a><a id="Tc_U46RHFCDm02xBl3fKU26Kw_6_4"></a><ix:continuation id="Tb_x4JKKUKdKUW60G8rC4cDyg_cont1" continuedAt="Tb_x4JKKUKdKUW60G8rC4cDyg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" id="Tb_mgh-1ZSIrEKTIICXEc8ixw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January 31, 2025:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_WMaY6KjdWE-84se4ZjMerQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_hvx9G2jFQ0qckwERabtuRw_3_4">26,372</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_vuW50PUIY0icq9nCnFJ6DQ_3_8">26,372</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CU2Xwf7ShkKAK-OfRB6-cA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_p4tD2PmX60K9N4N8upy2Yw_6_6">8,674</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_IjvAHY6XqEawY8oU9-P9_g_6_8">8,674</ix:nonFraction></b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January 31, 2024:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_48w17frq4EqulxAc4SrpFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_OjZcgIO200-rw1ORjPGDVA_3_4">16,206</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_YV0liBIqJkCbFjX0ps7ILg_3_8">16,206</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc__GG7SdgKv0aDu_RUDVsEog_6_6">35,146</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_HJVv5-51wkOtWVwXSPuKLg_6_8">35,146</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company enters into equity derivative contracts including floating-rate equity forwards to substantially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at January 31, 2025, we had equity derivatives for </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentSharesOfCommonStockHeld" scale="0" id="Narr_GM07deHU50CZgM_XBg7Y0A">332,473</ix:nonFraction></span><span style="font-family:'Verdana';"> Descartes common shares with a weighted average price of $</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="2" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentCommonSharesHeldPerShare" scale="0" id="Narr_hRobgmxqy0qexw4-u_n6Gg">36.80</ix:nonFraction></span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and administrative expenses in the consolidated financial statements. For the years ended January 31, 2025, 2024 and 2023, we recognized a recovery in general and administrative expenses of</span><span style="font-family:'Verdana';"> </span><span style="font-family:'Verdana';">($<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_S44TR7fVgkSPz63FEkoxJg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" sign="-" scale="6" id="Narr_iKwQI77Iqk2RTLCXAaFwXw">11.8</ix:nonFraction>)</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">($<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_ZMC6sYmwKUWILe6TNx0cvA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" sign="-" scale="6" id="Narr_N8ruEqdPDEO70Kdy8ErFlQ">4.6</ix:nonFraction>)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">($<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_N--uJkt4tU2vFwCD3jya-Q" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" sign="-" scale="6" id="Narr_UoD7l_ThtUOuPP2knwMjvQ">1.3</ix:nonFraction>)</span><span style="font-family:'Verdana';"> million, respectively.</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">71</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_FK0pYXiS5Uqds3S_IFfWIA_1_2"></a><a id="Tc_F2rKz_08e0evQ0pMfFlBsQ_2_0"></a><a id="Tc_fCewt2cg9kaIEWlW_VN0JQ_3_0"></a><a id="Tc_hTY9_Wb2B0ShVHRR9TkdLA_4_0"></a><a id="Tc_QVbOPSm890KU-mtBqTLOdQ_5_0"></a><a id="Tc_04eqCXkDNEeNMZRH50ZmTw_6_0"></a><a id="Tc_5Gf6qtUv9ECciPgoD6QVjA_7_0"></a><a id="Tc_zWxOq6YVJUmv8XbJjAsbQw_8_0"></a><a id="Tc_XeUU7HO_XEiMM3wlqaYJBg_9_0"></a><a id="Tc_6BqTzdUnmUOvp0eKbdw-2A_10_0"></a><a id="Tc_t1bQBDO5Xk6mYs0DT6Z3Yg_11_0"></a><a id="Tc_4QgVLQbwCUufNbj-MuM82g_12_0"></a><ix:continuation id="Tb_x4JKKUKdKUW60G8rC4cDyg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates of the fair value of contingent consideration are performed by the Company on a quarterly basis. Key unobservable inputs include </span><span style="-sec-ix-hidden:Hidden_wUviR6C3fEqFUQmmSc77-w;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">revenue</span></span><span style="font-family:'Verdana';"> </span><span style="-sec-ix-hidden:Hidden_mtJIG6LVE0yH0J6Nr7Bteg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">growth</span></span><span style="font-family:'Verdana';"> rates and the discount rates applied (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember__72voAu_lEWs-vxpkQPcoA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" scale="-2" id="Narr_o_8l8hdIbUaM3lJpdcRlmQ">10</ix:nonFraction></span><span style="font-family:'Verdana';">% to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_9HVQwmHyT0iyzVKlE7mFlA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" scale="-2" id="Narr_14cWmJD27kGUmZhAs8ffXA">16</ix:nonFraction></span><span style="font-family:'Verdana';">%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.The following table presents the changes in the fair value measurements of the contingent consideration in Level 3 of the fair value hierarchy:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="Tb_xdRVF8AmbEuvAlvrZ8w-dw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_jKEXqqdgBE6xB_nreRZepw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_MY-FlkwymUadqmPidjc7RA_2_2">30,949</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" scale="3" id="Tc_ZTYFHrtZoEK3nPKQnp47lA_3_2">19,550</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" sign="-" scale="3" id="Tc_7qN44hVubEujeBVNpbKOLg_4_2">31,688</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_Jh_sToTNvkqeVHtRay63rQ_5_2">16,334</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" scale="3" id="Tc_jXQKZo_Fo0CIB75FtRAFkg_6_2">1</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_hLHFJIfJ2EuW5nvUHyThIA_7_2">35,146</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" scale="3" id="Tc_x5Yt02YyRUCFqm93fdsANA_8_2">7,043</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" sign="-" scale="3" id="Tc_nIRtQb_RG0i3o5tZaF8SPg_9_2">34,210</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_KSFPiVQBMkWtaIam1tNvdA_10_2">707</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" sign="-" scale="3" id="Tc_Qqcd9N-NDE6LBRTImEkeSQ_11_2">12</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CU2Xwf7ShkKAK-OfRB6-cA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_YPYW6xReg06pUt7MRF9GXQ_12_2">8,674</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration paid in 2025 totaled </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:PaymentForContingentConsiderationLiabilityTotal" scale="6" id="Narr_Qx0mcxTPDk2A0lVBr9HK7A">34.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, of which </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="6" id="Narr_BYPCpb4ddECr_qxOVipXwQ">9.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities" scale="6" id="Narr_iEnx0kSriEeEXFoJ5Zfr3g">25.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million was paid out of cash flow from operating activities. Contingent consideration paid in 2024 totaled </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:PaymentForContingentConsiderationLiabilityTotal" scale="6" id="Narr_NDrkhyxVaUuvvOZ3THNKpA">31.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million of which </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="6" id="Narr_NI9miyDbXEyWizR5TMkqhA">19.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities" scale="6" id="Narr_qadHLW6-akCvVYb8JbCE0w">12.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million was paid out of cash flow from operating activities.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_vO69KhKxkUCoqcuWFMcAxw_1_2"></a><a id="Tc_UBIGJdjaikevCn1erwXRaQ_1_4"></a><a id="Tc_RtRZg75k9UOquh2VtMN8Cw_2_2"></a><a id="Tc_CFtnlYytE0KNGny6Jxz5Bg_2_4"></a><a id="Tc_Hk6OYCKkj0e18cnh0uPCeQ_3_0"></a><a id="Tc_lxDOmj7VokimgY0KMr2mVw_4_0"></a><a id="Tc_a_Og89bY0kGd1nnI-1OP_A_1_2"></a><a id="Tc_9rOj429yw0mgEIH2CJEf-g_2_2"></a><a id="Tc_yASydnyy3E-D1vKyIqYEyw_3_2"></a><a id="Tc_p1dgKiQHt0urUIue3iy0WA_4_0"></a><a id="Tc_JnM7NJ1a1UCc_uqtcoLOLg_5_0"></a><a id="Tc_QZX8cjQxhES39WxsEB2WYA_6_0"></a><a id="Tc_hvNc-WSZkkScY5S1yw-V5Q_7_0"></a><a id="Tc_LDRaYUB41ESk75GFQHsTdA_7_2"></a><a id="Tc_vXntPQy-oUiTJSRci5AGdA_8_0"></a><a id="Tc_sEaNCtsV0EuQOuEjz1COyw_9_0"></a><a id="Tc_8EJKKlSaKUqcnkHy0F7nwA_10_0"></a><a id="Tc_kAIzrRQRp0CLG7MBvkRd3A_11_0"></a><a id="Tc_ZL0-HfIYeEimC42N0cOVWQ_12_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" id="Tb_WVlgADOz8kic-oTjmeY93w" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;5&#160;&#8211; Trade Accounts Receivable</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" id="Tb_Wu_VNKWockK7iazhGPWgSg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableGrossCurrent" scale="3" id="Tc_8J6sdvsE4EWaU3j-IOJHMA_3_2">54,702</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableGrossCurrent" scale="3" id="Tc_sUCmDU_zOkC7_YQRboezxg_3_4">52,268</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_YO3K38mAGUWFuNYe3IkAxQ_4_2">749</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_abCgi5CPR0Sz7pzA2miyVA_4_4">699</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_650bb1yA00KVXTq5yXjOmw_5_2">53,953</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_3DBXtcjca0aEmgqMhZleUw_5_4">51,569</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Included in accounts receivable are unbilled receivables in the amount of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="6" id="Narr_0ws61qJerUOje4aj9j6I0g">4.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at January 31, 2025 (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="6" id="Narr_azRBB1cXw0-b987klsDTmQ">2.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at January 31, 2024). </span><span style="font-family:'Verdana';">No single customer accounted for more than </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="dsgx:PercentageOfAccountReceivable" scale="-2" id="Narr_jZ4VZHsYSkW0CY3sG4-dhQ"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="dsgx:PercentageOfAccountReceivable" scale="-2" id="Narr_iNmVHmBHLUm5y4utBWs6tg">10</ix:nonFraction></ix:nonFraction>%</span><span style="font-family:'Verdana';"> of the accounts receivable balance as of January 31, 2025 and 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the provision for credit losses as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" id="Tb_mhbu7AEjUEmjiwUFGNL6Bg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for&#160;Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_AAEcXS79S0-5BM6aAduOIw_4_2">1,545</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_6HEf0ldwzUC_qLDpkAUr4A_5_2">924</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_eAFGc6gbuk-iEGuppY0FFw_6_2">1,770</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_70QfpyoE7UepZSfBOayfhQ_8_2">699</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_3hep_J89_kqCYhQRKXtI3Q_9_2">1,676</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_NZKiH5rI1EWgvams6Zz_-g_10_2">1,611</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" sign="-" scale="3" id="Tc_vSy1a2VBr0mRpLSUtD4ZEg_11_2">15</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_FHZs78UzhUSK0M69f0UpjQ_12_2">749</ix:nonFraction></b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">72</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_xxcvlr45P0St_lNDGO9nWw_1_2"></a><a id="Tc_oME0Ax1OtEe0kai7EZP2Fg_1_4"></a><a id="Tc_bTNy6hMIN0OT2lZH_RhYjw_2_2"></a><a id="Tc_ZC9Bw31DSkiPjX_hqK7i2w_2_4"></a><a id="Tc_g3nzTBkrPUKzD0z75uNuGQ_3_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dsgx:OtherReceivablesTextBlock" id="Tb_2RHNG5hLVk2BZOWAe30ROw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;6&#160;&#8211; Other Receivables</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dsgx:OtherReceivablesTableTextBlock" id="Tb_LMBibrc_NEeL79gqMCaKyQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsCurrent" scale="3" id="Tc_8UDkm1RtC0iHBm7URVqwtQ_3_2">16,931</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsCurrent" scale="3" id="Tc_tonk_DHW80moMGNYbm1nTQ_3_4">12,193</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_z24E6t1hH0iVHtW6CxxrIw_4_2">16,931</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_3dmH-U8itUG2ytPt3cGs7g_4_4">12,193</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January 31, 2025, a nominal balance (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-5" format="ixt-sec:numwordsen" name="dsgx:AmountsRecoverableFromFundsHeldInEscrow" scale="6" id="Narr_ieQcgusWx0G5h_fhBGPi_Q">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> at January 31, 2024) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_xsspop8-k02f56FQFLR1cg_1_2"></a><a id="Tc_UT4CFy3_Q0KsYqMCrPbAbw_1_4"></a><a id="Tc_YQiF8h470UGtgixWdciaew_2_2"></a><a id="Tc_hFC7fayOeUaWn2Gj3OI8kQ_2_4"></a><a id="Tc_6T96nKbaZ0WoPi-g4YAQTw_3_0"></a><a id="Tc_ntolwUBlSUeXRgGTdkCC5Q_5_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock" id="Tb_x_X16fxb206LR3xChyfOuA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 7 &#8211; Prepaid Expenses and Other</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" id="Tb_kSVXbz-1fkiEIwIBL9ydTw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Prepaid expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseCurrent" scale="3" id="Tc_3uGiYgWYlk-HKQeSh-01ug_3_2">18,457</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseCurrent" scale="3" id="Tc_mN1siJWUHEuWPvSI509FIw_3_4">16,909</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_-c-HgOnF9kGzA58VCMLhTg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Equity derivative contracts (Note 4)</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetsCurrent" scale="3" id="Tc_nvyKiE3W_EqrBPPhx1q17A_4_2">26,372</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetsCurrent" scale="3" id="Tc_45A_HJkMB0-AmMqEW4Ibgg_4_4">16,206</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_AMTm7xILhU2NIz0vbsFGSg_5_2">715</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_gSllURv4AUKfXkiC0igAKw_5_4">353</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_cdtVYgQQD0-osmlBF-bjdw_6_2">45,544</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_AztQqp4jMUm-yHKyCdxYXA_6_4">33,468</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><a id="Tc_KRVtj_0kFEGe5yGu6N-jRw_1_2"></a><a id="Tc__RyQMDXDdE2-leCCb7Spqw_1_4"></a><a id="Tc_Aul9zzsft0CsOiIaYpSNiw_2_2"></a><a id="Tc_Sbvx9bFNmkC92NzqVwDMPQ_2_4"></a><a id="Tc_2TeFTTH0ykG7aU3meAUMkw_3_0"></a><a id="Tc_UoqvBrvXzUi6FfbHEjYjSw_4_0"></a><a id="Tc_mVfulnP3G0SjD-yPYJ7ueg_5_0"></a><a id="Tc_brbpvlql8kqimDigPlRBjA_6_0"></a><a id="Tc_i_Yr2ZYVGk2Zg3l3i_EP3A_7_0"></a><a id="Tc_lyVT3E9mSUODQsEdxHb8ug_8_0"></a><a id="Tc_-tqUEUTbu0e-d2WmG4xIzg_10_0"></a><a id="Tc_O2rWHujolUChvvQYeXo8Dw_11_0"></a><a id="Tc_QUDIURksOkOTAHuo7mHmKw_12_0"></a><a id="Tc_8EReyb_Ndk--0Eon3M0MwQ_13_0"></a><a id="Tc_8yoNFtPKekmeeQB2e0e7lw_14_0"></a><a id="Tc_0K50p3cARUS9F5trz2cnnQ_16_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="Tb_1gFYEN6Uvkqog4LSDNo3bg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;8&#160;&#8211; Property and Equipment</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="Tb_OTGSWR2RgUKREl-MAmnoGQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_uDviOrJ_yE-9Kusbtl-yCg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_4W0y2aAAnE-CTEz78kmrYA_4_2">39,261</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 10.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_Go4nTqHXPUKw4j9ZmcdgOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_9-Hkr5KsGUKm7P3N3OkMOw_4_4">48,943</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_0zoYH0kUQk2deGemzPoQwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_QE0B3LMO6UimMYFfkrv7jQ_5_2">1,193</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_22PpKr8xZEO7YA5NLeoKyw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_cIoNcVkC3EimALjc6MtJ8g_5_4">1,432</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_HNgsLH351kGZUAX4sRSUBQ_6_2">718</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_NP6RexODBUedcTTIbJ6Qlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_fGRKyUKOqESB4-1Sk26itA_6_4">994</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_FfPxRGaV8EC0xNasXANn7g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_JJUSXaPxj0edVjPiiAZ49g_7_2">2,430</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_tLIxzA-2w0e-6-v3HuiaUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_-_X7O2fH90aY9-hEMPQ4dw_7_4">2,314</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_qyasNacZ8UWxXVwLFrq5pw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_Onempss0OUe_A3WwffJ0_g_8_2">35</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_jqKw8kSw806UqTe-2_GuVw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_oW9TP9nmZEyz1bqIwHwlHQ_8_4">497</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_w-P6cheNxE6o2eFVrHBTwA_9_2">43,637</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_rMLbsWosKUac4O1lEFXZsg_9_4">54,180</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_uDviOrJ_yE-9Kusbtl-yCg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_h_nNqCTPrEm_E85svqHMkg_11_2">27,507</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_Go4nTqHXPUKw4j9ZmcdgOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_7JfpXho7dUiuADtZEx15oQ_11_4">38,825</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_0zoYH0kUQk2deGemzPoQwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_61Ii1ehHmkiu8zHRO8TCkQ_12_2">1,076</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_22PpKr8xZEO7YA5NLeoKyw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_7_DMSYyyvUCO9CNgWZvsJA_12_4">1,287</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_dq_VRlsYXEqqDSdNVnbJWw_13_2">529</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_NP6RexODBUedcTTIbJ6Qlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_Wdrmp3Jw3UyVUuv-83J2-A_13_4">730</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_FfPxRGaV8EC0xNasXANn7g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_5tmPK1qfQECJu2dG1_fcUg_14_2">2,044</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_tLIxzA-2w0e-6-v3HuiaUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_i9XycFXnWUSqWR-1S5r2Tw_14_4">1,786</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_qm-mnrTOpUWlWdYgSVVBpw_15_2">31,156</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_bb249Zi_UkSDgWglJmCu4Q_15_4">42,628</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_Nlx-9e716Uy_Pl806PDwrA_16_2">12,481</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_i4l2kcvYckGy3DUnuR4eKw_16_4">11,552</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">73</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_MK-OrzOroU2Yo9FvY_TdqQ_1_2"></a><a id="Tc_SFOmKOFddUWSHcFRSHXWDw_1_4"></a><a id="Tc_CNjV5-LAmEufnRyWE22BbQ_2_2"></a><a id="Tc_sKfhcygK4ke-YRTSSsXZpw_2_4"></a><a id="Tc_KzESNR6LsUSMFfpqvt0eeg_3_0"></a><a id="Tc_-KSU5piAgUGwgKm7G1JbNg_4_0"></a><a id="Tc_0QLUiAWsM0Cu1FY7ycTkpA_5_0"></a><a id="Tc_8Ui2uFeL6UGvJfXWq2RtGw_6_0"></a><a id="Tc_EU5JthhuiUWYK2xQ-UBE6A_7_0"></a><a id="Tc_w2dvu14u60CipgD7nZ9ETQ_9_0"></a><a id="Tc_0slSTSUEbUWOmrCkKMDqwA_10_0"></a><a id="Tc_EZ1CvOqxUU6fMoGRZMQqPA_11_0"></a><a id="Tc_2PdLX8h7oEip6qjZJAfFuw_12_0"></a><a id="Tc_-TY2cMxht0eSDuuHMWIYKA_13_0"></a><a id="Tc_LiIoeqy9W0GTy5LcWIlGAw_15_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="Tb_xIo8MZf04U-LNbhwzRHM1w" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;9&#160;- Intangible Assets</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="Tb_LXOPwsX_2UqYR6NVS_fxog" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_EBxrGWAaF0OXIUkpEt98BA_4_2">354,049</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_tlrKVweEF02PJg6mdyprsQ_4_4">299,524</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_BeVghKtBX0eDM6R0nh-L9w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_ogz12eU4hkKDzqIMi6uFIw_5_2">466,832</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_cbdskV2m4UOhjP9Aq_0ovw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_3VHmurE_2kOirRiMWF6FDA_5_4">403,944</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_7knd96na0kCRHN4I1BER8w_6_2">12,142</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_rV9qxNXpFEK67LsWcJr72g_6_4">10,139</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_-IVhYk8I2E2ZJ3XVs8CfRA_7_2">16,483</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_RFgFqQFgYE2kJjsp4kfKCQ_7_4">14,911</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_0_eO-L5bB0elvtGaTjMI8w_8_2">849,506</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_pz_jQhldX0eJTh78YhuiVg_8_4">728,518</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_d1SUGnoMBUC-Avb0EHLr0w_10_2">189,908</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_UFwt0DugCEGvNn02zN58Zg_10_4">172,026</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_BeVghKtBX0eDM6R0nh-L9w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_QcmC28e7rUyPQsXvZFX6Bw_11_2">316,506</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_cbdskV2m4UOhjP9Aq_0ovw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_zN0SdeaPjkCDCDKGNlswUg_11_4">285,148</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_azzdiqRj3UWvKnzIYtqLBw_12_2">8,889</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_jfgJyQyPqkCdcJdAR8XnRQ_12_4">8,227</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_yIs9wks8_UWFNyPTrzxiSA_13_2">12,933</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_mhEDQpFTX0uvi3IV021Aaw_13_4">12,070</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_lnGLsxuVlkiUbWFORUvFkw_14_2">528,236</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_P0ZfVvhoGUC2WEL6SsoOFg_14_4">477,471</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_M8WWOM5yE0i5NSOD11l_rg_15_2">321,270</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_yFlGwdt31kKYi2l2lujGZg_15_4">251,047</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the year ended January 31, 2025 is primarily due to the acquisitions of OCR, ASD, BoxTop, MCP and Sellercloud partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="6" id="Narr_bd2zBX39W0mF0S9wMsKgxg">321.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million over the following periods: </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="6" id="Narr_ciSdIoaVY0SyAXSTSZrqpg">71.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2026, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="6" id="Narr_uPFLLxmS10K_q7dMi9Q9Yw">56.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2027, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="6" id="Narr_CdmW8L52L0msvHY8DbaS4Q">49.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2028, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="6" id="Narr_Ln6Ws2oCQ0-pEJ1mBTEYhA">41.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2029, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" scale="6" id="Narr_ETJ8G-l1X0qLrfP8Ytg6PQ">29.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2030 and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" scale="6" id="Narr_Bzwfq6EYjUWN8NC1tA9WyQ">73.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_pq0C1rWZ80SjUmeNzpnRMQ_1_2"></a><a id="Tc_Ye2BrEU2v0GNy7oc8mC1sQ_1_4"></a><a id="Tc_wYm_i8YhUUessfSR3H5MUg_2_2"></a><a id="Tc_1xDeg4hQJEOpqzG2Z_sQSg_2_4"></a><a id="Tc_rXnoZnimlUOpVWNvvpCI1w_3_0"></a><a id="Tc_-B2PxJzXZkSXLWNuiXLhXA_4_0"></a><a id="Tc_MfSWl0_Oq06VYysYK7u4rg_4_2"></a><a id="Tc_3S2YJfz2ykqK--Is_xf8OA_5_0"></a><a id="Tc_vJlAzMOLOEeLFSKt_rw0Xg_5_2"></a><a id="Tc_0qOnZF_8IkCMX1buwmxMrg_6_0"></a><a id="Tc_9OGl6x1XRkqHIpdYTSbzvw_6_4"></a><a id="Tc_K36cupZrG0Sz_ufGqZAp6g_7_0"></a><a id="Tc_jglF0mN-WEqlJv_urAvmCA_7_4"></a><a id="Tc_jKtZZXyLlkSqKgngSxNsXg_8_0"></a><a id="Tc_kF4TxUEs70G16-6rLQI_yg_8_4"></a><a id="Tc_qj9f54pJSky6Rgn1DUjVFw_9_0"></a><a id="Tc_d9hTeCUFfEmCjVfICcTtQA_9_4"></a><a id="Tc_Bfkt5Etee0m0G-L-rQ3ZSA_10_0"></a><a id="Tc__i1TI4gpqECxSGfE_R_04A_10_4"></a><a id="Tc_bTh5VdCfi02L1qR5yAddFA_11_0"></a><a id="Tc_aK7nHyXeRUS-PJuyxlddAQ_12_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:GoodwillDisclosureTextBlock" id="Tb_ukXKMT5ZvUK708nQ5DUqJg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;10&#160;&#8211; Goodwill</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January 31, 2023:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfGoodwillTextBlock" id="Tb_wF5WQm-DQE-MKjwGanCNzQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_jkN7IZPwFEiRkLLZMS2s1A_3_2">760,413</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_46FFkxhEikiWPp0cLsUEXg_3_4">675,647</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GroundCloud</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_DbGSzCulzUqmNxsC1Zrmyg_4_4">82,750</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Localz</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_wnATgWtDI0GRx7SnhtfK9g_5_4">954</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of OCR</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_vLpXGxKH6kidzS1GGVgkbA_6_2">52,112</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of ASD</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_zQhDCar3SUSqXJcnG0ZHqw_7_2">35,604</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of BoxTop</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_yJcr97UfRUaKizrDZwtt9Q_8_2">7,747</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of MCP</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_dq5g7wsjb0eKE98x6eK1MQ_9_2">13,429</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Sellercloud</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_arMwDU0NgEW8oXhGkBJYyg_10_2">72,059</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" sign="-" scale="3" id="Tc_RqKZyZdaRkuIwtY862z0FA_11_2">16,609</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" scale="3" id="Tc_8zXuXM21I02o3v70xVfeVA_11_4">1,062</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_TjBXYrOuvUOaZDkdySUEvg_12_2">924,755</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_xgXAmIPQU0amjlFBeyk0aA_12_4">760,413</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">74</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_m7qA0c5zzkSTiyAJYTdY8A_1_2"></a><a id="Tc_GwQmze_rkki6XyQt9sOzAw_1_4"></a><a id="Tc_6XXSIcJgOU-oedPB-Xxcwg_2_2"></a><a id="Tc_IlkW3wXE8kykoi4PWNmD5w_2_4"></a><a id="Tc_3QQelgoqrUGqHuTgDS_eJg_3_0"></a><a id="Tc_ibZkA4ZFxUGPqwh468fo6w_4_0"></a><a id="Tc_U16rz8Bz9U21AX6IvggMIQ_5_0"></a><a id="Tc_ElOEgJn4n0eX6RZa1X0Pyw_6_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="Tb_nLdT0B3CRUGJizZs8uMu5g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;11&#160;- Accrued Liabilities</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="Tb_EFlKSbgL2Uyr0TBPgj1WKg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_TAmRTYtwrUSSX_-rMHo9Sw_3_2">55,105</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_D3xqvSAYZEyWEeUJ20mLOg_3_4">43,075</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued contingent acquisition consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_PGmLFblNMkq6170rGJ1Bkw_4_2">8,674</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_499v4JaRnEWISZhAcFReNg_4_4">35,146</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedProfessionalFeesCurrent" scale="3" id="Tc_JEmMVBu7l0yMJGoOm-Zcxw_5_2">1,823</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedProfessionalFeesCurrent" scale="3" id="Tc_i1U12z8awUGVO4YqDx2-XQ_5_4">1,577</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" id="Tc_PlfIgobpFkKDUKPloN2g6Q_6_2">14,054</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" id="Tc_Yp9gSPK5NEeGxacKulOJTQ_6_4">12,026</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_FaqlNMuhzEWm-VapTbUKxw_7_2">79,656</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_kfHcbSEzzUi61HI5hxPp1A_7_4">91,824</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities include accrued expenses related to third-party resellers and royalties, suppliers, and accrued restructuring charges.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:DebtDisclosureTextBlock" id="Tb_6-IicdxBfkqRh_fN6rQh_g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;12&#160;&#8211; Long-Term Debt</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_q9BnnaeJ3keyafk0FLQcFw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_qrvBcAQlS0uVxdI3NrclXA">350.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. The credit facility has a </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_wrBQNVVzqEKlcU269TIqJQ" format="ixt-sec:durwordsen" name="us-gaap:DebtInstrumentTerm" id="Narr_O1Vg2BfwREmfTXMr4Y6BGg"><span style="font-family:'Verdana';">five-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> maturity with no fixed repayment dates prior to the end of the term ending December 2027. With the approval of the lenders, the credit facility can be expanded to a total of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_WL7pLbCDN0Ckb1zgzZgT2g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_cks0jmPIqkGmckX_i7015w">500.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#8217; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Canadian Overnight Repo Rate Average (CORRA) or the Secured Overnight Financing Rate (SOFR) plus an additional </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_V3Aj27J_PkmCeX-LFcezAg" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_ng04XDoEQUafvY05lbqynQ">0</ix:nonFraction></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_TmoItXZpVkm1U7gesmtM-A" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-4" id="Narr_UlPBvh6czkKuzOEEJ4vM0g">250</ix:nonFraction></span><span style="font-family:'Verdana';"> basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. A standby fee of between </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_04BD1YAFmEeWdI8JxjptTw" decimals="4" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-4" id="Narr_Ol8RDRnwP02avg8ZYIeaTA">20</ix:nonFraction></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_tC7kCZf7I06n773bWStW2A" decimals="4" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-4" id="Narr_vSmSvM9MCU2v1SMEYNNcXQ">40</ix:nonFraction></span><span style="font-family:'Verdana';"> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_RuVFsfy9rUWbrdsCqHsnVQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_3xIwYFVqb0mJTtw1MQZsmg">No</ix:nonFraction></span><span style="font-family:'Verdana';"> amounts were drawn on the credit facility as of January 31, 2025 and the balance of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_RuVFsfy9rUWbrdsCqHsnVQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" scale="6" id="Narr_RmhX6FPkd0yzc2PCNiVpyA">350.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, we had outstanding letters of credit of approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_gdz7Bdkj2ku_SN0IvC_Pww">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_MZROrs7-z0yMfbx87-6KYw">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at January 31, 2024), which were not related to our credit facility.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_jtpR3Kjbp0-vkUGVUv-twA_1_2"></a><a id="Tc_AtEgBdAr2kmNicU0OPZExQ_1_4"></a><a id="Tc_0xU05cUst0OV8YN8WpnJVA_1_6"></a><a id="Tc_hVXGGEiJV0-dqojv-olR4w_2_0"></a><a id="Tc_AWgWxEtPzU2vNlf3bN-GkA_2_2"></a><a id="Tc_cUIpMvnzIUiIC_UoWiG8_g_2_4"></a><a id="Tc_-vEHBeMbqkive3OOguGTBA_2_6"></a><a id="Tc_5boiElsZq0GUkGpTns_-Ig_4_0"></a><a id="Tc_SXXmXv9Sb02dNGpRb54pHw_5_0"></a><a id="Tc_cxc6KDl6LECoPdTyy5GUjQ_6_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:LesseeOperatingLeasesTextBlock" id="Tb_hsaDJBT__EGHzn3WwsxDhw" continuedAt="Tb_hsaDJBT__EGHzn3WwsxDhw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;13&#160;&#8211; Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Narr_sPieAbOho0WicwjUbfqpzg"><span style="font-family:'Verdana';">5&#160;years</span></ix:nonNumeric><span style="font-family:'Verdana';">, some of which include options to extend the leases for up to </span><ix:nonNumeric contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseRenewalTerm" id="Narr_Fcc1bcKCUkSwbTT3b7Mdyg"><span style="font-family:'Verdana';">5&#160;years</span></ix:nonNumeric><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of operating lease expense were as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:LeaseCostTableTextBlock" id="Group_W3ebdbjda0KD1rdwq_2vBg" continuedAt="Group_W3ebdbjda0KD1rdwq_2vBg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_y6lkvnmsVEqf3lGJ6huMEQ_4_2">3,656</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_TQA0Cxz3B0qTOPnP-FdhpA_4_4">4,169</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_BaJInOrmlU6O1tXPRPuAjg_4_6">4,182</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_G7wnJb8ySk-5tQ0pRO1fUg_5_2">508</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_PEVCTahN2kC089khZzWEVw_5_4">597</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_K_oImgTts06IRZkfumTL5g_5_6">636</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_RuGAEanwcUC2ncOezFqHJA_6_2">4,164</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_rBX8ZiJTFUWoLSO_J5RQCA_6_4">4,766</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_AT8fqGezR0mYPjrUmasy0Q_6_6">4,818</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">75</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_hkDNHuusHU2klgTYrQlJIQ_1_2"></a><a id="Tc_fbjM_GOryUa-6qLZc6U1IQ_1_4"></a><a id="Tc_r24Aal3lkkegoUGHuQCcxQ_1_6"></a><a id="Tc_1IP67jXSN0-ghk5Bypo0Tw_2_0"></a><a id="Tc_y43dMrS280G2UmjtTJ4LMA_2_2"></a><a id="Tc_0Lckcmpo00-eq6b1XHuCVA_2_4"></a><a id="Tc_msotpleAoEiTPUp-hUSVZg_2_6"></a><a id="Tc_hAQjWhcIl0K9C69iPNq7bQ_4_0"></a><a id="Tc_Vn4UxJhmL0WW75ULXyj2mg_5_0"></a><a id="Tc_r4Z1wlzLmk2EbLNrAbftOA_1_2"></a><a id="Tc_uZB0ukmnPUO7bUsQycHp3Q_1_4"></a><a id="Tc_KZyGqyDOn0msFhi_WBmr1A_2_2"></a><a id="Tc_PpWadxbmj06I7YkjG8Koxg_2_4"></a><a id="Tc_81nb6E-dNEO4g_Tz_qFWmg_3_0"></a><a id="Tc_FGSBsBkZ4kOsWHDhghDSrw_4_0"></a><a id="Tc_wCfqiWmXg0O9ud5R-3n9Uw_1_2"></a><a id="Tc_hjDMjfTi4Uy7MwYT-BnvPw_2_0"></a><a id="Tc_QxI8zgfxsUOoiiMYRcvbSg_2_2"></a><a id="Tc_4eMzk7B5-UGsqrh7sKUr9A_3_0"></a><a id="Tc_lrFl4NhLlE-ee3-ihIIq7g_4_0"></a><a id="Tc_oSZMV61rMkSoKRlEeIwbeQ_5_0"></a><a id="Tc_y8aY3VZONkCg9pD6E4axpg_6_0"></a><a id="Tc_xXor67l9WUSRX9P9jY8zwQ_7_0"></a><a id="Tc_w-glZ_NH80eLds-5OSsUZw_8_0"></a><a id="Tc_zWMLaTqvk0GaLgvVPPbkyA_8_2"></a><a id="Tc_IxhDDW4u50CKAHK3ds2WgA_9_0"></a><a id="Tc_pBp0YOcUNUeQdKY3c9QNvg_10_0"></a><a id="Tc_WZyQQsaia06xVRs8x0974A_11_0"></a><a id="Tc_LcZsde-guEOqm7u-fnalVQ_12_0"></a><a id="Tc_A1MZLw9QBEOcfmiYWmSP1A_13_0"></a><ix:continuation id="Tb_hsaDJBT__EGHzn3WwsxDhw_cont1"><ix:continuation id="Group_W3ebdbjda0KD1rdwq_2vBg_cont1" continuedAt="Group_W3ebdbjda0KD1rdwq_2vBg_2"></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental cash flow information related to operating leases was as follows:</span></p><ix:continuation id="Group_W3ebdbjda0KD1rdwq_2vBg_2" continuedAt="Group_W3ebdbjda0KD1rdwq_2vBg_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_sx2fQav2JEKQHNNQsuf-Sw_4_2">4,028</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_yA0axMgPPUedum_YCqwZtQ_4_4">3,996</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc__e6YXCRCDk-MXVaWMlZ72Q_4_6">4,240</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New right-of-use assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_Ph-ppBlOxki7v1sz3CSFVw_5_2">3,706</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_yAmyIc3CHk6OX2B118Ftzg_5_4">4,239</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_Y4ykE5-EdEO-Y2LnveqfJw_5_6">864</ix:nonFraction></span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental information related to operating leases was as follows:</span></p><ix:continuation id="Group_W3ebdbjda0KD1rdwq_2vBg_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Tc_PP7m1ahAq0qhFsdWl7nT9A_3_2"><b style="font-family:'Verdana';font-weight:bold;"> 2.9</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Tc_QU2P4mnK9EmzaBZB2BgwOw_3_4"><span style="font-family:'Verdana';"> 3.0</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Tc_Gj9E1EajHkeuOxERny6Xvg_4_2">5.1</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Tc_pZ7VPaMnUUmKTASoyKM-PA_4_4">4.1</ix:nonFraction></span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Maturities of operating lease liabilities were as follows as of January 31, 2025:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Tb_Qs4Tjx_aEEWlU3miPZyqug" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" id="Tc_WFo-WyeLiEunPq5N9xfP0A_3_2">3,571</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" id="Tc_bcoiLC6dFESYU9ORahSJHw_4_2">2,510</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" id="Tc_Mk1lm6_aOEukhYpvg1B44w_5_2">1,671</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" id="Tc_8dY4FsFt70uIxuYIlVwGqw_6_2">596</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2030</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" scale="3" id="Tc_kxJSMECvpkGPoBL-_Ki1uQ_7_2">219</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2031 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" id="Tc_Q0M2EsmqjUyvhOBZs82TJg_9_2">8,567</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" scale="3" id="Tc_QzoHfpWIJU2UMC4x5NRDGg_10_2">671</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_KIhTCX9MKUGkb2fOrYFWOg_11_2">7,896</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_hHDlfztSdkSq4hmPE1QX8w_12_2">3,178</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_Vbhv1U3uDEKbpXf_L6YycQ_13_2">4,718</ix:nonFraction></b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock" id="Tb_3d45LXeKJ0KftZGd5XVXMA" continuedAt="Tb_3d45LXeKJ0KftZGd5XVXMA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;14&#160;- Commitments, Contingencies and Guarantees</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As described in Note 2 to these consolidated financial statements, we maintain deferred share unit (&#8220;DSU&#8221;) and cash-settled restricted share unit (&#8220;CRSU&#8221;) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt-sec:numwordsen" name="dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" scale="6" id="Narr_uK8kwz4fsUSmBcd3v004ew">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" scale="6" id="Narr_IiOazfhDA0OYdpbG5G9SrA">1.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, at January 31, 2025. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2025, we had equity derivatives for </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentSharesOfCommonStockHeld" scale="0" id="Narr_55bNo2NrvUe6NXsQTPTheg">332,473</ix:nonFraction></span><span style="font-family:'Verdana';"> Descartes common shares and a DSU liability for </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitLiabilityNumberOfCommonShares" scale="0" id="Narr_RaxlCtUtG068-lCPZTfoTg">332,473</ix:nonFraction></span><span style="font-family:'Verdana';"> Descartes common shares, resulting in no net exposure resulting from changes to our share price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">76</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_3d45LXeKJ0KftZGd5XVXMA_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of Supply Vision, GroundCloud, MCP and Sellercloud, up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_wuvKoabWc0yCW4EQJ6bLvg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_qTq9ehjk-0eRlHULlee5BA">67.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million in cash may become payable if certain revenue performance targets are met in the </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_qFZ8AKGr10C7QT1d9FDHQA" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_00TBdSHX4E-GwFIOUaFd7g"><span style="font-family:'Verdana';">two&#160;years</span></ix:nonNumeric><span style="font-family:'Verdana';"> following the acquisition. A balance of</span><span style="font-family:'Verdana';"> </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_wuvKoabWc0yCW4EQJ6bLvg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_5g_wyUB-HUWHN8j1mdXzzQ">8.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million is accrued related to the fair value of this contingent consideration as at January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#8220;Guarantees&#8221;. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third-party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">77</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_PjD-Ic4YWkKm2Ct176Z5-w_1_2"></a><a id="Tc_evuM0a_zRkOi7bsBIQmS4A_1_4"></a><a id="Tc_7aF3bTggi0G4TPoEv0gbIQ_1_6"></a><a id="Tc_BAGwWzUgPUGcbIe6k9Ea9A_2_0"></a><a id="Tc_C1xoVPkDuESr84T3DplIrA_2_2"></a><a id="Tc_2Icq4vvOGkymy2ytvYWVEQ_2_4"></a><a id="Tc_SrG50Ci6O02FPoeRtgoMjw_2_6"></a><a id="Tc_-eBHlGKCs0KxWld3hKryFw_3_0"></a><a id="Tc_e0D_FsNWk0ygU49fxNGg3A_4_0"></a><a id="Tc_blMxp71itEy22g-QB4Gz_g_5_0"></a><a id="Tc_rxedcSAYsUeZ_h1q3wDvhQ_6_0"></a><a id="Tc_Pn1fvriWCEaM1DeQwFHJgQ_6_2"></a><a id="Tc_zOQk7yvfr0-Ro-hL8spInA_6_4"></a><a id="Tc_EkixeJerVUqGVSHEQfQYfA_6_6"></a><a id="Tc_fansNxfe6kmZXqcFl9Lt1g_7_0"></a><a id="Tc_qZOxBV5uMU-RgInYUpHZsg_7_2"></a><a id="Tc_2P9EHPHht06knXx89Ygsnw_7_4"></a><a id="Tc_f9j7su7Q70yDKOoJCnHkhg_7_6"></a><a id="Tc_g7ORbx7iakyO5Vcku68Ltg_8_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="Tb_-1mvWm-z-EeB0wUuGoHaNQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;15&#160;&#8211; Share Capital</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2022, we filed a final short-form base shelf prospectus (the &#8220;2022 Base Shelf Prospectus&#8221;), allowing us to offer and issue an unlimited quantity of the following securities during the </span><ix:nonNumeric contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_mEkKpjUzJ0-wwdVRxvQgEg" format="ixt-sec:durmonth" name="dsgx:ShelfProspectusPeriod" id="Narr_rSmSvnYXLEm_X-4N0yHVKw"><span style="font-family:'Verdana';">25</span></ix:nonNumeric><span style="font-family:'Verdana';">-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_mEkKpjUzJ0-wwdVRxvQgEg" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="0" id="Narr_oAU94f0TEkm85bjft_w83g">No</ix:nonFraction></span><span style="font-family:'Verdana';"> securities were sold pursuant to the 2022 Base Shelf Prospectus, which was withdrawn in July 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2024, we filed a final short-form base shelf prospectus (the &#8220;2024 Base Shelf Prospectus&#8221;), allowing us to offer and issue an unlimited quantity of the following securities during the </span><ix:nonNumeric contextRef="Duration_7_15_2024_To_7_15_2024_us-gaap_SubsidiarySaleOfStockAxis_dsgx_BaseShelfProspectus2024Member_5Z8ZCcWMOUO76bMv09nQEw" format="ixt-sec:durmonth" name="dsgx:ShelfProspectusPeriod" id="Narr_Zd5buzwJikuMqDpof4zqcA"><span style="font-family:'Verdana';">25</span></ix:nonNumeric><span style="font-family:'Verdana';">-month period following thereafter: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_7_15_2024_To_7_15_2024_us-gaap_SubsidiarySaleOfStockAxis_dsgx_BaseShelfProspectus2024Member_5Z8ZCcWMOUO76bMv09nQEw" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="0" id="Narr_cu039gMMJ0OcFWhpy7MeYQ">No</ix:nonFraction></span><span style="font-family:'Verdana';"> securities have yet been sold pursuant to the 2024 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following table sets forth the common shares outstanding (number of shares in thousands):</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" id="Tb_x7hRxqIfw0etwnbD5tqBrA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_P4JtADV7UEaHiCuEZVht8A_3_2">85,183</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_pAE6g3MRnUyQhrH1EAxp7g_3_4">84,820</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_zGbyWormlEaRN1HN3Psvbg_3_6">84,756</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Shares issued:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" scale="3" id="Tc_VNhwUeySdU2ChHWyeX7qQg_5_2">423</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" scale="3" id="Tc_nqimaYSsEU2YcG8PZYjPdw_5_4">363</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" scale="3" id="Tc_7eO4tiWAMkaFbVz7ZWL9QQ_5_6">64</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Issuance of common shares</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Acquisitions (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_H6CEEfTrHUCvPfTytXE_DA_8_2">85,606</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_knKR62SH0Eu1bXkdku-hvw_8_4">85,183</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_L2xuDy4FMUaAnkEySEJwiQ_8_6">84,820</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash flows provided from stock options and share units exercised during 2025, 2024 and 2023 were approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_uJdIQAIK4UKYiCC18MSiVg">12.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_EwwkrDnbsECRe19RP8s2Rw">9.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_fnBP4jt9A0G1RE1U4JanDw">1.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2025, 2024 and 2023, the Company withheld </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Narr_25sMERwgeUuadFq-W5DSQg">73,588</ix:nonFraction></span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Narr_Y9n6erfMTEmz7vtvEN4-vA">63,330</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="0" id="Narr_AbzobWQyI0qhJEWQoZgIuQ">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> common shares, respectively, to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs. Total payments to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs were </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="6" id="Narr_bHfFdiiD0U-8n5hfG21w9Q">6.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="6" id="Narr_-srwN9usYUG1RzJv9-N_cA">4.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="6" id="Narr_oeIR29HIhUyVxlsrwrv3bQ">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> during 2025, 2024 and 2023, respectively, and are reflected as a financing activity in the consolidated statements of cash flows.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">78</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="_a53253ad_f2a8_4acd_a25d_1d50cd0e578a"></a><a id="Tc_bkKPQtlGWk6v4tVKDczmTQ_1_2"></a><a id="Tc_B1tFFO_100qAigLaF3VsSQ_1_4"></a><a id="Tc_PeVx6mVlckGqsgH4aerzhg_1_6"></a><a id="Tc_L0ichkIAhEWrnX3tAE5ptQ_2_0"></a><a id="Tc_q34BErqxN0OGIUSpfm4kYw_2_2"></a><a id="Tc_SGpa6Pe8q0qgh0zSm3ssVw_2_4"></a><a id="Tc_8MmWMTm7tk6apq_rnkFuhw_2_6"></a><a id="Tc_eXA9VJsZN0yXTzU7ZLIC-A_4_0"></a><a id="Tc_DqST8kbCE0W8VJ8E6UWKXQ_6_0"></a><a id="Tc_EaI-NR3rTUuU2OxyqEd72A_7_0"></a><a id="Tc_WyUrU3HiLkiPOonsHMNTzA_8_0"></a><a id="Tc_-AV5oErcU0a8Nwfx_L2jNQ_9_0"></a><a id="Tc_zk24SyH23EemxIMV7ghu5g_10_0"></a><a id="Tc_l7Awdg2qkEurUFkAl-DvHw_11_0"></a><a id="Tc_R6dz073T30KN9QKlcMWtVQ_12_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:EarningsPerShareTextBlock" id="Tb_cW-8_voMRkWMkze7VuN6xw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;16&#160;- Earnings Per Share</b></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="Tb_lgJ-9d_DEUmuPFJY6Vbyeg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (&#8220;EPS&#8221;) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_52qlDP3ZWEen3xR2eoTojQ_4_2">143,273</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_T3zXSalyKkKyrAp46YEH3w_4_4">115,907</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_obllSGE2ukaALcD4clD5Hg_4_6">102,236</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_0hGX_thcxEqG4xdNM7jNlQ_6_2">85,443</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_0-I5Pjc120-sVCQaeD2I8A_6_4">85,068</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_rHtopZui006pvxDe7_DZtw_6_6">84,791</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_nO5x64WiBUm28RyYDvLFEw_7_2">587</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tZaBkCg-_E2nfi42hj9Mmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_OawaRvwaSU21Hcx3LnyOyw_7_4">505</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_fyWpwPAk-EmoyxE6tbBLlQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_9GprEcn4XkOOW1BQKiQ51w_7_6">455</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_RweN7PdW50Oje059Am7ueQ_8_2">1,293</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_-U9M6DK6PUWkneiOblubkQ_8_4">1,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_xyHYu2TJ-0mA5R0IAE7ubg_8_6">1,205</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_wMbn7ESRQU6JXdq_Hv3WuA_9_2">87,323</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_SINlYSRGrUqGYAaRmWjyOQ_9_4">86,818</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_ValGSxspck25ylZog6Pn8Q_9_6">86,451</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_WG4L9AbUYkabs79vTIdpHQ_11_2">1.68</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_HztEj3FwyU2S8myYaAStNA_11_4">1.36</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_9sSPFDX98k62-cMC_q0KBg_11_6">1.21</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_FjmjKjP_gkK2-saX1FhK1w_12_2">1.64</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_ywNLOd69BUSFS1kHoFJVcw_12_4">1.34</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_LHUQE3xJB0eIdu0b3-g4-Q_12_6">1.18</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2025, 2024 and 2023, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Lnj0zT4JWEy8CcnqFviQ5A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_jZAGqm8FlkeZfAeUm1o8ZQ">274,398</ix:nonFraction></span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_UDQyiLl3d06ArwTWo4GMEQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_2EApoxTQMUiBCeST8I8nPw">16,562</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_mkdJJESXj0eX3bKjFFxG5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_N0wtelu6yUea2PLAdJJtDg">589,658</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2025, 2024 and 2023, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_XlMeR2DDHU-DnDfvB6AZqQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_qx6f5VKIKUW3U3bqAa81Vg">939</ix:nonFraction></span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_x0JjZP9AUU6zOUBEXUdXlw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_u8OZ8NceQkiCdI-cV1rJEA">265,694</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_zmfpheEgwkuoppa1mziUzQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_7eKYjR4fOkSUMUzP_TCLCw">1,315</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Additionally, for the years ended January 31, 2025, 2024 and 2023, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember__Wef7ZpiVEi7vc2dWtroQw" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_yu3At8vgvE-csqGmdjEkTw">nil</ix:nonFraction></span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_Utlj73tVJ0yplHkFoxjA3g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_O8d-r0OZOUOEYBN2UWF3wQ">95,134</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_79uZOvhDnU-FGNnUvBr_PQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_M0_txqnUQUaXVIV0RPamHg">nil</ix:nonFraction></span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_wAoY-HHRv0SoXK_sisg3Jg_1_2"></a><a id="Tc_2sf60SVK_kKwaDIUW9I0xw_1_4"></a><a id="Tc_aN1njb3ak0G7tY0TR4bwKg_1_6"></a><a id="Tc_-rhZTIs1nUqumBJBy-1Bxw_2_0"></a><a id="Tc_w3LjV8JhSUyENYvWAq2fUA_2_2"></a><a id="Tc_rbIGZTQBHUq4J5aLmHxvpQ_2_4"></a><a id="Tc_QbIPpytaOUinW-LifUJzIQ_2_6"></a><a id="Tc_m7sYri2aqE-1FC5YmLbnMA_3_0"></a><a id="Tc_4BFAJ2rZgkuCgYV3LtaQaQ_4_0"></a><a id="Tc_qb6nATgwQEaDT_j_I5_7YA_5_0"></a><a id="Tc_u9EujmQmJ0KN9QXdNCgrlw_6_0"></a><a id="Tc_Ih-yn7fQmESQV8zpn9I3kw_7_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Tb_Feqsk7s-f02EvQvb428yGg" continuedAt="Tb_Feqsk7s-f02EvQvb428yGg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;17&#160;- Stock-Based Compensation Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="Tb_i9LLu5ZqT0afxa8VeJRx_g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_6LDD9oq9OUuESvdtMiZz0w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_Xa1NyqJpxE-bQD1ef-ZUMw_3_2">1,407</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_0od1S6PnM0mj7T8qaoVr1A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_63UvxUUuPUS5ycaQIxD82w_3_4">1,128</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_SxrvPTnIFkuuTD54OzmjKQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_aJN97LCWy0q54lklvNwQKA_3_6">940</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_4k1yOiu2Lk6QjVmPLanZUg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_QgYFVZkd9UKUhPEkMNrsaA_4_2">6,440</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_MocVBqOuhEKNgD_BdDwPag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_8RX8ytDTLU-W1t6NFQau9A_4_4">5,197</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_lxKsFqqyMEqPn7bdKxggpQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_KlLTIF63i0aN9D0jYg7y3g_4_6">2,468</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_dReCUT9GAUuaHpWiNoyI0g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_UnjDevv6dk2HETqmnE_drA_5_2">2,744</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember__xmXzVVI1EmTxS0AS_jJOg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_vKIzAGxSO0-cnUsDNU2lng_5_4">2,138</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_IWngTEjIE0294u68Ko6Kiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_6bUg-bH7rk6hGGCZkhBxLg_5_6">1,788</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_S44TR7fVgkSPz63FEkoxJg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_qs9eCMXjVkS1QdFCFLyhug_6_2">9,371</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_ZMC6sYmwKUWILe6TNx0cvA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_ZXlWVvfTRUSuapZ5Twr1XQ_6_4">8,017</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_N--uJkt4tU2vFwCD3jya-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_3whcqDl7PUqhBLn88VuDsw_6_6">8,471</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_avEjGCLcM0ay7h_tUUjzXw_7_2">19,962</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_OKXHOKX6CEiZcTafMryxAA_7_4">16,480</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_IMCz1rUcxUCS_Cc9klqZag_7_6">13,667</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="6" id="Narr_E4DMmoUASEyymVcm1uB00A">1.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="6" id="Narr_2OvgAHPtHEabAwp8jCt0VA">1.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2024) recognized in the United States and Canada. The tax benefit realized in connection with stock options exercised during 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" scale="6" id="Narr_PS7_cAF8yUu7L7BYbYM-Aw">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" scale="6" id="Narr_sVTS2imt_kSZUzXQAhhBpQ"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" scale="6" id="Narr_Vll3rByMB06CLVlgr5L4PA">0.4</ix:nonFraction></ix:nonFraction></span><span style="font-family:'Verdana';"> million and nominal, respectively.</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">79</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_GaM9oHGkYUagiwmsPZ1SiQ_1_2"></a><a id="Tc_vBsZnbnd0Ued_iI_EIu3qw_1_4"></a><a id="Tc_V1LQlIKKWU-7sM9_yJleXw_1_6"></a><a id="Tc_UHOzR8HFVk2bK_bIlpuPDQ_2_0"></a><a id="Tc_t6VmzoDSgku4BZTiG__XAg_2_2"></a><a id="Tc_rTc4s8ug8EmZH9w86HFk0A_2_4"></a><a id="Tc_EBm95IRypEmstdVK8FEL-w_2_6"></a><a id="Tc_aVBf7xjpfEGTogTHbGjxmA_4_0"></a><a id="Tc_3aoSvZQ54kO8Es8M3xFIUg_4_2"></a><a id="Tc_ChfQkeTqQECGzm8VJ-NEHg_4_4"></a><a id="Tc_TxEgmu_-ZUGnsBhJw8HM3g_4_6"></a><a id="Tc_0cTp_LaFTkqlkNDMzCx1gg_5_0"></a><a id="Tc_D6pEEY2CvUWRy7Vqa6Zyrg_6_0"></a><a id="Tc_okVuNlKTf0-L3Cmveasbag_7_0"></a><a id="Tc_7XU4mPlWh0yfi1sg6hsCJw_1_7"></a><a id="Tc_-FiJHbaq0EKNLN6VPyZcBw_2_2"></a><a id="Tc_RWC_J5L9V0Wxr5q8u9-13Q_2_4"></a><a id="Tc_GqmEdBo8JkWDy3z_FcWRCg_2_7"></a><a id="Tc_KAM17XKO-UumgPtGgzKwKQ_2_9"></a><a id="Tc_gQJkrO8TzkyE40NMZapDYQ_3_2"></a><a id="Tc_use7LmtJMUuVwt-477REhg_3_4"></a><a id="Tc_521eHhopukWiiAC0pKM2BA_3_7"></a><a id="Tc_ClfoQOBfN0CwWoMEbTDHWA_3_9"></a><a id="Tc_skxM7IYME06GGIMtdGebnA_4_2"></a><a id="Tc_BUYVRhwrPUueBut3EcIB-A_4_4"></a><a id="Tc_b0ioEFiiRk27mys9ZXw_aA_4_7"></a><a id="Tc_X8wGZ4maOEactAbXxXKq0A_4_9"></a><a id="Tc_F6r004kKv0WbBTgCRVTkHQ_5_2"></a><a id="Tc_B7PwzHCY40-9L0vLyULyzg_5_4"></a><a id="Tc_1fPBcKJAbUu0egKInhYD_A_5_7"></a><a id="Tc_KVapjZ1kuUG75tYJ46pS9A_5_9"></a><a id="Tc_UfBGBMVv90um2qGhTjG3sw_6_0"></a><a id="Tc_npN4F0OdukKVYgB1XfQPtQ_6_4"></a><a id="Tc_tYmHDqfa0UGRdKHRbBIGqw_6_9"></a><a id="Tc_M_g12A-FvkW6ssdHIlEE2g_7_0"></a><a id="Tc_obAoljtHe0-G81d7LLUY-g_7_4"></a><a id="Tc_lj7wj_G6dEWN5cPhdbKeyw_8_0"></a><a id="Tc_jusoNs8wCE2TU7c2cEMmxg_8_4"></a><a id="Tc_ARbZg5SOgE2GoZIeHoSZ4w_9_0"></a><a id="Tc_WcPPIC5baUCSKI0uFwjdsw_9_4"></a><a id="Tc_zrFTHGc9hUuqIBtHNWDhVQ_10_0"></a><a id="Tc_dLtaUzj6VUOnNHUNvytVoQ_10_4"></a><a id="Tc_BeEyl3Lo80qqnzkwNLTsCg_10_9"></a><a id="Tc__ytRCx1FhE-CR_wbAkUa3Q_11_0"></a><a id="Tc_3TLlBGH140CvZ_imflfrMA_11_4"></a><a id="Tc_QpxvI5zXX06jzMesVaGxpg_12_0"></a><a id="Tc_bgSatr0mJku4dX0sLq5VRg_12_4"></a><a id="Tc_vZDwlLxFhUun1Q7z0QYDEQ_13_0"></a><a id="Tc_cOev0b_mFEaewmsm-N2asw_13_4"></a><a id="Tc_c_PuQePpEUm-s8QohWJ1Ig_14_0"></a><a id="Tc_9mg9W4iQCkez1Bb-1WTaCg_14_4"></a><a id="Tc_R7cuMt2tlEa4u65NqbTTcA_14_9"></a><a id="Tc_Fk0jl2EqUE-QG1NsIzQPFA_16_0"></a><a id="Tc_X4ufZxtXYkC2EbdqSPH9Dw_16_4"></a><a id="Tc_YD_urDyoGU2HEXaDVc7iCg_16_9"></a><a id="Tc_fgw_wmrcUkCirDT2RV4hUw_18_0"></a><a id="Tc_3XOWZ1C54EGoUWUnm4O78g_18_4"></a><a id="Tc__WgIiSLCZk-n3AAa-Hxbvw_18_9"></a><ix:continuation id="Tb_Feqsk7s-f02EvQvb428yGg_cont1" continuedAt="Tb_Feqsk7s-f02EvQvb428yGg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, we had </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="0" id="Narr_Ye1F1r0EbUiHwNreMnCQoA">1,501,901</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options granted and outstanding under our shareholder-approved stock option plan and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" scale="0" id="Narr_rxpETdJ_jU-fmuauARQc3g">2,177,290</ix:nonFraction></span><span style="font-family:'Verdana';"> remained available for grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_E1w6yWf9N0Ovb3NRfl-jxg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_Z9BaCuVWT0yGIuindzgXcQ">9.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_aEe--UiHA06KQbRy62M2Rg"><span style="font-family:'Verdana';">2.4</span></ix:nonNumeric><span style="font-family:'Verdana';">&#160;years. The total fair value of stock options vested during 2025 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_26MqBf_CPkuqFpp-7FLwDw">6.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total number of options granted during the years ended January 31, 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_W7FTKS6AH02fhTNhJcy2XQ">280,658</ix:nonFraction></span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_7QXr8kRf40qvWgcllYmSRQ">278,845</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_ii31gqilE0WCltRCb9I4JQ">356,014</ix:nonFraction></span><span style="font-family:'Verdana';">, respectively. The weighted average grant-date fair value of options granted during the years ended January 31, 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_JU3vE4dlyU-nQ3UECxkPEg">29.53</ix:nonFraction></span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_QDG3LQ3EbkWUyj7TNQGGgw">26.19</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_qFzBWX758UyaMl8SZzzG0g">18.47</ix:nonFraction></span><span style="font-family:'Verdana';"> per option, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The weighted-average assumptions were as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="Tb_WYRMWXAsa0uy1fshtDbWYg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_HJDyhaRXj0izBzXM2lgKhg_5_2">30.0</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_Ps_lOXOInkKreHuqpXZ8-A_5_4">30.8</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_et9V6kG0pUyuSQZIWEpmfA_5_6">29.2</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_L2iyxVNkb0er7m4WsP2QFQ_6_2">3.6</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_UJ0hIJKLL0CPg-Tl6u0mMQ_6_4">3.2</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_Mvc_gBVPXEWaaPjkHuzBGQ_6_6">2.4</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_PgHE0SgkukSJxVrbsqbzJw_7_2"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_2gzzB2EKwUmDQdvYxxJSpA_7_4"><span style="font-family:'Verdana';"> 5</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_nIU-68zzt0-Ti4cyxW4tOw_7_6"><span style="font-family:'Verdana';"> 5</span></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">A summary of option activity under all of our plans is presented as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="Tb_G_vOIglfJEOZWRo35A3raw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_phaMBd93kEKDWtN8fTh--w_6_2">1,593,433</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_s6ujMXpr8ECdjYyR5vif3g_6_5">45.54</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_W6Tjsq5afUyiz9mS5zzZaA_6_7"><span style="font-family:'Verdana';"> 4.1</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_Xnjawdwe20u_LpG4xAp4mQ_6_10">45.7</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_XmLTx9BYnkGzBfOgimOT9g_7_2">278,845</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_MzbC0p5hWUyb0oSIU3hHDg_7_5">79.80</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_FcJuAFYDvkWAeI3fSkX8ZA_8_2">285,808</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_A_EfNFRRMk2jsVSZU5TkTQ_8_5">33.06</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" scale="0" id="Tc_5-at1aTpxUeYu-B-a6wSsw_9_2">17,919</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_GAO_2lshn0mYrwvBj7PloQ_9_5">62.30</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_YXajlCHyYEiHIoPLnVn-4w_10_2">1,568,551</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_zeN3cUO_F06Zt333ZBhuiQ_10_5">52.31</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_5i_XqFyYBESWgXpe8MrnfA_10_7"><span style="font-family:'Verdana';"> 3.9</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_nxw4VoI2KkyxHAfHvAYR0g_10_10">54.8</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_eXJTZj8QIEG-NSJ7QjFGww_11_2">280,658</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_TFFylUPqN0GmJNjssbyz-g_11_5">88.82</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_nsIN6X6bbEqVn6xRH5Eehw_12_2">332,109</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="Tc__qOYCttLmEypBe1HH98qqQ_12_5">37.25</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" scale="0" id="Tc_vWZiPBdOqUy1gbGkRMOAfg_13_2">15,199</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_YahF3dzJek6Jd6vIkOyhWA_13_5">77.06</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_wivkH1QviU-DtZ4YnycIpg_14_2">1,501,901</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_9bFQoLuO9EqKJ159cYPefg_14_5">61.06</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_1GQJOCKdW0aD_u5SNpeeQw_14_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.8</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_B1BP3SxKuk6f946OjpXK5Q_14_10">91.6</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" scale="0" id="Tc_jq-f54aFlkKgs0-ukO7UGw_16_2">1,501,901</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_zgRF9qZyn0mvVnrwf2VgYQ_16_5">61.06</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_vE3n1PsBg0aKDYxaLmr5Jg_16_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.8</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_DErMMd57v0y-71KkYCDSGQ_16_10">91.6</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;">Exercisable at  January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" scale="0" id="Tc_6FU4S0_Nd0uMA_uCytpbyA_18_2">1,091,499</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="Tc_2c8bEz_zOkOMneQ2AfqmLQ_18_5">54.70</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="Tc_EmlqV-PkHEq-JLrIHD2-Xg_18_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.3</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="6" id="Tc_-JoklU1Kx02o9vggSvsntw_18_10">73.5</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total intrinsic value of options exercised during the years ended January 31, 2025, 2024 and 2023 was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_oQIitPkm_ky5IzmJeZ3UxA">20.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_jjgautN9RkGkasXg1gY0-Q">13.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_iFSFEyKLgUOIpiB2wAFuag">2.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively. The exercise price range for outstanding options at January 31, 2025 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_85-4y-eEFkK0YORQAA2uQw">26.44</ix:nonFraction></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_vG9gaQWL6EigIrKDBOjXOg">120.82</ix:nonFraction></span><span style="font-family:'Verdana';">.</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">80</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_REK8pgAjfEKM3GrzBclWWg_1_4"></a><a id="Tc_-dBBqV7M5UuMT4zzb0qa_Q_2_4"></a><a id="Tc_RU_sjsHul0WZW4HP0zDeMw_3_2"></a><a id="Tc_gALCfbXx2ESoYreH-zIbvA_3_4"></a><a id="Tc_pBo86DfLPEatLLH-bGKsyQ_4_2"></a><a id="Tc_RNjZClzvF0aSk7H4vn7KYg_4_4"></a><a id="Tc_5RgK7uLaHkK-uhGzhjHNxg_5_2"></a><a id="Tc_utT0m7Xl1k-Rv2X52EbjTg_5_4"></a><a id="Tc_gLpQnmMpmECMGeQyO3YlQg_6_0"></a><a id="Tc_StKOPDNts0KbLCR4k03Rzw_6_4"></a><a id="Tc_PXgUY0bHNUeGnaljy5fTvg_7_0"></a><a id="Tc_Sy9Qc1NOd0e30yeJuFegXw_7_4"></a><a id="Tc_rHcpmELct0GuRISIQRTt-Q_8_0"></a><a id="Tc_TwFI7VJKiEC_h6TnTIWnNA_8_4"></a><a id="Tc_LyN5NScoB0SXcmVQDtAg1g_9_0"></a><a id="Tc_YeSzt2oXPUqNEVI9Onzrxg_9_4"></a><a id="Tc_s0yV6v_Hu0uMEU9cEvGcPA_10_0"></a><a id="Tc_jTkwIXnKc0yPUjtDF-bH-g_10_4"></a><a id="Tc_H-9N8MGjdU6BNTh3Hrc9GA_11_0"></a><a id="Tc_Sp8L8vkQB0GIWby30eOJwQ_11_4"></a><a id="Tc_gShl7wWY1U-rgvLIKxYKyQ_12_0"></a><a id="Tc_s-wFIoa4akWOhKAz47M7kg_12_4"></a><a id="Tc_EjuUIxr_dk2ExtqypPS--g_13_0"></a><a id="Tc_7Z_gyWJXG0mtLo7LLfvA3g_13_4"></a><a id="Tc_-6qL-4mBq0qUjq45XkrN_w_14_0"></a><a id="Tc_JFWe0nuC7kyJcGEzd8i14w_14_4"></a><a id="Tc__mst9FuXkUSQNEOi9VpExQ_1_4"></a><a id="Tc_xi_dQpseKU6Oy-xh9kmRMQ_1_7"></a><a id="Tc_suTHxA8ENEyPtaopbTiYOQ_2_4"></a><a id="Tc_nKPtQbY7Z0qOhFYJWIuF5g_2_7"></a><a id="Tc_YSBvbVnh10iANS49O7cp4g_2_9"></a><a id="Tc_b2snnD3MokesbgoREdeolQ_3_2"></a><a id="Tc_SGeSQNUoqUCyjAoHQJB2Xg_3_4"></a><a id="Tc_W0mS5F6v6ESYlO1r5qlq8w_3_7"></a><a id="Tc_4yiLkdLioUWJ2SDpQtjI4Q_3_9"></a><a id="Tc_Fkr6WfiejUKAH99wOkHUcA_4_2"></a><a id="Tc_lZGcZj5-iU2p7057-CE-PA_4_4"></a><a id="Tc_-Jvau5qfs0eMtZtciGEgAQ_4_7"></a><a id="Tc_evHI9xgdckShD45WtxMoQQ_4_9"></a><a id="Tc_KnPs9ZMvgEeEHv232q8MjA_5_2"></a><a id="Tc_nfl6K2jOPUW3wDH8QuQKKg_5_4"></a><a id="Tc_qWkYtIpRAkGCxtSRh4dytA_5_7"></a><a id="Tc_cG9urm3HLUe3DlY7ICOUyQ_5_9"></a><a id="Tc_58pxfM_0GkOisgBwiby6hg_6_0"></a><a id="Tc_h-zU58vGQkywQtotKPXqbA_6_4"></a><a id="Tc_WPWFvdsjTkmFe9ddPcAuAQ_6_9"></a><a id="Tc_UQiFlgXPQEy5EYTLk20k3w_7_0"></a><a id="Tc_4hokHPYHEUKXGYBtsXLJrQ_7_4"></a><a id="Tc_bb8I9nQibEWK-W7GMcQDjA_8_0"></a><a id="Tc_6SVvoJZ-mEW1sqCxI2Xyxg_8_4"></a><a id="Tc_CpXumfF7xUGp9lAQQEemqg_9_0"></a><a id="Tc_k6HMT1HxuE6yb8fWRt6CRw_9_4"></a><a id="Tc_RCfwNssNEkyDYUU5bRlXZA_10_0"></a><a id="Tc_ZTFrfhqYhkm0XqP2s-yI0Q_10_4"></a><a id="Tc_x3j-HCjLv0eVN-e73ascuw_11_0"></a><a id="Tc_-kjDSBjtd06EXupR6IdRGA_11_4"></a><a id="Tc_U0Wmdp1cw0WIFV0OxEORVA_11_9"></a><a id="Tc_6dTdv9ZSHEKaIBlmeXKOLA_12_0"></a><a id="Tc_t2ESFwawhkWSj-nvurNSdQ_12_4"></a><a id="Tc_ydZaEP4gy0qb3MKQmK_Y2g_13_0"></a><a id="Tc_miG1abPkbkypeAIjm1YUkg_13_4"></a><a id="Tc_FCG6fcZYsUG0rk1lHYLC8w_14_0"></a><a id="Tc_5nkFrAQuCEm0jDkEvB7zYg_14_4"></a><a id="Tc_9Cw_HZ2e20uJO_96m_7GdA_15_0"></a><a id="Tc_UBtC2yWKzE6_YhZDNiYoBw_15_4"></a><a id="Tc_v91mKz3lwkW_PoZt9jEdug_16_0"></a><a id="Tc_jwr9GJkhl0i1HLaox1bD7A_16_4"></a><a id="Tc_BZCNiSE2Nk6z0C1erP9lZg_16_9"></a><a id="Tc_SkDnFpUbC0GRBHtb_kvpcQ_18_0"></a><a id="Tc_-cnNrAFZt0WWCXSS64NYwQ_18_4"></a><a id="Tc_SPBeTOeBikS7G0kMyBrqRQ_18_9"></a><a id="Tc_76lBiJ2ezEOXUA6uZ9-a8A_20_0"></a><a id="Tc_XmKsSuuubkOODhqZVCaxCw_20_4"></a><a id="Tc_DxB6HCfYPUCs77LAuD22SQ_20_9"></a><ix:continuation id="Tb_Feqsk7s-f02EvQvb428yGg_cont2" continuedAt="Tb_Feqsk7s-f02EvQvb428yGg_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Verdana';">A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January 31, 2025 is presented as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock" id="Tb_Eqs1E5Hp_kW9mj1qeq1-8w" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Grant-Date&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock&#160;Options&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fair&#160;Value&#160;per&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember__hYjTdk5LU2ktRZvFML-yQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Tc_TIvwbUHOJ0K1f8UDvOqi_A_6_2">488,821</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember__hYjTdk5LU2ktRZvFML-yQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_5MDKk3aSU0CaTSBI3aWItA_6_5">16.11</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_RfC2nbRuakCEIY1Ry1jSEg_7_2">278,845</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_LQ1JfShXakiYD-Px7TPrtA_7_5">26.19</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" scale="0" id="Tc_AiRK5Q3B5kiaLpqIO3u9NA_8_2">303,628</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_vJV9F-IIFEeu1N6j9HBkQA_8_5">17.74</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" scale="0" id="Tc_8OdAMe-Xf0edQGGPYotxTw_9_2">17,485</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" scale="0" id="Tc_dBA-uXcmfU-ZqFcbtjvXtQ_9_5">18.29</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_AkJWHYCt-UyY9UTyv4-EIw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Tc_rHO6TGJVYE6pvApo1cCduQ_10_2">446,553</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_AkJWHYCt-UyY9UTyv4-EIw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_q0ACFUaTjU6segKWM7vQBg_10_5">20.67</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_g70YjOxBm0OXVOeJFFLC9g_11_2">280,658</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_LPR5h9-TWUmDCisAzvdd0g_11_5">29.53</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" scale="0" id="Tc_6639uaYFC0eGuwdMjjCuKw_12_2">301,921</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_hk6_yYlPXkytFG3JG3sycg_12_5">21.88</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" scale="0" id="Tc_HUsIDAJ5T0uQYMDYT5-qKA_13_2">14,888</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" scale="0" id="Tc_MwV20klbJUWMOu3F5CZllQ_13_5">25.16</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Tc_B7-H0il4xEyzDVpOFL24jw_14_2">410,402</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_vFqsVBzzT0yfd9n0Wgs8yw_14_5">25.21</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Performance Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of PSU activity is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" id="Tb_oVIvaAFc8E-Uir4GnZFCVw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_U7MX03PAUESqnhAhaAQlPg_6_2">915,233</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_DDY03z0vgEWvQjTcsZIJgQ_6_5">38.41</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0etVXC59d0yJEabB2TBpIA" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_OpRapl981kis3b8VwZhEfg_6_7"><span style="font-family:'Verdana';"> 4.5</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_j-ryKplZPESwZD9BuiQSWA_6_10">67.9</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_OgxCBDahhUKqPqe8lwLGPw_7_2">95,134</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_TshZhW6t4EycnxzjNFWr_A_7_5">105.96</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="0" id="Tc_ZvLCYltkP0KCnfGzDrLVew_8_2">68,005</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_Igb1IF2HtkOf-P72OUVNZA_8_5">53.80</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="Tc_byIaULh4v0q0UVO_rAYnDQ_9_2">87,354</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_jrv7RWqeJUGZlBVSPrIGsQ_9_5">14.29</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="0" id="Tc_yfRnApiusEGDqTov2jAvdA_10_2">2,475</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="Tc_B9HGsyVlc0OQf1Tk51dSCA_10_5">81.82</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_Pkaf-cMxYUmv1_NGL5Sl6w_11_2">988,543</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_iCOX1F8Wl0-cjYFWA4fGDA_11_5">53.81</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_U0vnhmCfXkCpwtDIWn12ZQ_11_7"><span style="font-family:'Verdana';"> 4.5</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_sD_Fna-XB0iu53yQsYbj4Q_11_10">86.3</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_FjulF7vXU0G8QzLBXgvaJg_12_2">92,873</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_OsN4ntczWUmdROsMda3x1A_12_5">109.77</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="0" id="Tc_Cy1x5OOrH0Wzr5Ya391QjA_13_2">40,477</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_9KBW2FkJPkWXd6oymAi7IQ_13_5">80.11</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="Tc_AJEziD26TUeqjsiTcxNz1w_14_2">109,820</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_8TKxt5bsEECfxDBsXONbfg_14_5">19.88</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="0" id="Tc_QTtNAY1B60uqXhFrHLoUaQ_15_2">3,428</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="Tc_c5m2zLDf-0S6-nX3Dzsf2A_15_5">80.66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_YUcRi74jv0ecF2cKrJyOmw_16_2">1,008,645</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_3QFrS-bmIEilVkVRVFqDUA_16_5">62.92</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc__Mi4VI60P0eAxj9Kve52qw_16_7"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_GR-NXHEsTUmBEXPkjSvv9g_16_10">123.1</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" scale="0" id="Tc_1tdnJxEHB0Kz4XnY3OBXew_18_2">1,008,645</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_u-aCv-Js1kiO8PRkjweLZg_18_5">62.92</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_R6gB_SzdukyXeXbgNRhX_g_18_7"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_aIHUrW1KDUivw_7xKQCD-A_18_10">123.1</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="INF" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" scale="0" id="Tc_zvsuJP27rUatgaSDyBcAiw_20_2">726,075</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" scale="0" id="Tc_8ugYhIZcOkK5-gcWShMehw_20_5">47.45</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" format="ixt-sec:duryear" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="Tc_-SIjQcQ0uECiJXRAROVm4w_20_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.2</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" scale="6" id="Tc_fpYGexWiVkyNKejFJ3ki0Q_20_10">88.6</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2025) that would have been received by PSU holders if all PSUs had been vested on January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_Fe7goZmP_EikK2OCZcrXqg">10.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_FbVN50LvW02RRR1MIb1hYA"><span style="font-family:'Verdana';">1.7</span></ix:nonNumeric><span style="font-family:'Verdana';">&#160;years. The total fair value of PSUs vested during 2025 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" id="Narr_NWXVFmxGpUKTzXKyy3pZDQ">6.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million.</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">81</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_1st_pE1AX0mfeNy5DB7YJg_1_4"></a><a id="Tc_Sn2Bjozc_UO-QQjZXxbUVw_1_7"></a><a id="Tc_IJcEcaQ0-kuk7mBthV833w_1_9"></a><a id="Tc_098ZT0Am5EKJBIEKjqmq6w_2_4"></a><a id="Tc_pOw0KVgLbEGh0IY1SwCnmQ_2_7"></a><a id="Tc_4hhQwcRhZkCtsB-hsy93pw_2_9"></a><a id="Tc_Ug5Pb34X6UiiGmrBtJoIYQ_3_2"></a><a id="Tc_wzI04p-qDEuN-pWqSnjxnA_3_4"></a><a id="Tc_ItjJJDm-RE-ESeDxRULPDg_3_7"></a><a id="Tc_MmTEmL1l5Uy04Lcl2AOWRA_3_9"></a><a id="Tc_MMlrlayr00mePBAPi9NqSw_4_2"></a><a id="Tc_zsYlZ_BglU-myCy_RtZa1A_4_4"></a><a id="Tc_P9HmkTQHOkGg2c1Y99czEg_4_7"></a><a id="Tc_GSfCd9P_nU2q85TDb3sEHg_4_9"></a><a id="Tc_PXASCaMDoU-E78148rmq7A_5_2"></a><a id="Tc_v_4assXLpkW2meutJtzuvQ_5_4"></a><a id="Tc_TKDFEcrl4Ei_qF02saW1rg_5_7"></a><a id="Tc_FV8AKMjDRk-HGv5Q-MVYMA_5_9"></a><a id="Tc_c2FNSF0RMUqz71TTBn5SMQ_6_0"></a><a id="Tc_q9nP-sEWW0yQK9Ag-irSzw_6_4"></a><a id="Tc_5eAkKB61oEaYWbBYXDzIQg_6_9"></a><a id="Tc_lGWh8CadP0eeJeJ4bHxH_Q_7_0"></a><a id="Tc_zbGyiYJ80kSCAkZo-c31jQ_7_4"></a><a id="Tc_mMjH2by2wEepSLPuxFcJLg_8_0"></a><a id="Tc_7tXJqaPKzEu1rKfAKdmUGQ_8_4"></a><a id="Tc_Sx07dZpk6UeBu6yisUdF4Q_9_0"></a><a id="Tc_SbnrMS66mUS0XO4hXxNweA_9_4"></a><a id="Tc_uaeJzqHUJUqzRusc41oVWQ_10_0"></a><a id="Tc_WSU8qNql70e0mjb6iQa0eA_10_4"></a><a id="Tc_8VwMTGXOz0Gjyk4cNinmjw_10_9"></a><a id="Tc_EBRYDtIZ4EWFowXCcnJABg_11_0"></a><a id="Tc_m3FV09v3hEO-buoZAaQQyQ_11_4"></a><a id="Tc_uy63mH7cZ0C7Pp8T1d7uuw_12_0"></a><a id="Tc_5Qh3sL-b_ES0mtKEWEEG2Q_12_4"></a><a id="Tc_fmu5Er0HtUezwpRmKBrKtQ_13_0"></a><a id="Tc_8yqFjUf8HUiHiI5fl_JErQ_13_4"></a><a id="Tc_UtqrGLCgR0yntoEUqg7qPg_14_0"></a><a id="Tc_agtHSH27xEWoxttSOrvfsg_14_4"></a><a id="Tc_Gh7AidSS-kasoR_mrkne3A_14_9"></a><a id="Tc_hmM0zmvE4Ei77vY5bKOGYQ_16_0"></a><a id="Tc_HgfWGO7CSUiXk950JMwIzg_16_4"></a><a id="Tc_yOW8HM470kyKRDwF1Bz1BA_16_9"></a><a id="Tc_J-uaDUNiUUipHs4n8Nrnew_18_0"></a><a id="Tc_ML9N2fIZcEiqiPiFyn0veQ_18_4"></a><a id="Tc_ENlZrIaLYkyYKpWU66t0lA_18_9"></a><ix:continuation id="Tb_Feqsk7s-f02EvQvb428yGg_cont3" continuedAt="Tb_Feqsk7s-f02EvQvb428yGg_cont4"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of RSU activity is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="Tb_zDiKNALgsUa9bVMEjMgOvQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_5Pmi2g-SiUCq0BgUl-XUUg_6_2">474,631</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_RTSV6rFth0C54bglzeJX4A_6_5">32.44</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_lXDJIomuPEOC3V0RhuAS9A" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_FgzUl9kV6EiuZDVnzd14Ow_6_7"><span style="font-family:'Verdana';"> 4.7</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_SUPPylVxxECHpSHlKCI6HA_6_10">35.2</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_dabH9MlOlEmu4C8D4X9oJw_7_2">61,774</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_d1ySLGMpgEi8-ZHt1SU1sw_7_5">79.89</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="Tc_AnN4Mp8XCU2GvfmBNycu5g_8_2">53,898</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_ACoBhMvdL0WKbnQDXJ_SpA_8_5">8.52</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="0" id="Tc_MBA9xwpyIEiCf-Z11w-TvA_9_2">413</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="Tc_V8kRVBM5skiSBuGL0TxqTA_9_5">60.66</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_bO4oKoV7dkmUGm0gN8d01w_10_2">482,094</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_e6ymlT65DESVPZHH_0UFdg_10_5">40.19</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_TVej2NuA-06ya5rfCESYyQ_10_7"><span style="font-family:'Verdana';"> 4.8</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_vQemzHP8eEC8GoqcJtidOQ_10_10">42.1</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_rHlfVqjQYES6Htwkj4DiIQ_11_2">62,597</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_h9xEJf62U0aKqCgmEoN-BA_11_5">88.66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="Tc_bGN0nj-MLEifANjPY516eA_12_2">54,173</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_71yOFrCXEku9_OYfJNUt-w_12_5">13.36</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="0" id="Tc_PNeYTlkz70yZ_szMdWK9jQ_13_2">829</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="Tc_nv5GLju5UkuLdoHvRj2Itg_13_5">70.74</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_nJCz6GTqgEqNuWAQXq0QbA_14_2">489,689</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_1Vg5nKlFYE666Bqu6yZ9mQ_14_5">48.48</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_aLNJnVDc_0SdIdT8BKlBCw_14_7"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_nnSeFBgGrEuROwqzKrT12g_14_10">59.8</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" scale="0" id="Tc_bfx7Y_fdh0aY9ilqk5ORLQ_16_2">489,689</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_fNYh0so0Dk-l54Y2RkodMw_16_5">48.48</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_A9UIryjMnEC50vDdAvr4aQ_16_7"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_nii_DGUxuEeU7QTzvO2-TQ_16_10">59.8</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="INF" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" scale="0" id="Tc_XKKOst_uGUiU229Xv2Qg_w_18_2">427,613</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" scale="0" id="Tc_14_pp5VLCUa9_FZeF7cg2w_18_5">43.14</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" format="ixt-sec:duryear" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="Tc_mSv1F0IRJEO770M5r_X6mg_18_7"><b style="font-family:'Verdana';font-weight:bold;"> 4.4</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" scale="6" id="Tc_SOmxCnrsv06uvI_cU45-Mg_18_10">52.2</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2025) that would have been received by RSU holders if all RSUs had been vested on January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_ZOC8N6Tt60KaoI_w0co4Lg">5.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_Oy3NiQJoV02qrX0Gmpi2UA"><span style="font-family:'Verdana';">1.7</span></ix:nonNumeric><span style="font-family:'Verdana';">&#160;years. The total fair value of RSUs vested during 2025 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_MS9CQDA-jkuNy-EjYfWMKQ">4.5</ix:nonFraction></span> <span style="font-family:'Verdana';">million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, the total number of DSUs held by participating directors was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsOutstandingNumber" scale="0" id="Narr_1CwqoS8R5kiuHzJQhCKk5w">332,473</ix:nonFraction></span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsOutstandingNumber" scale="0" id="Narr_i3qM_AFTyEqDPLDT3Jg2tw">311,081</ix:nonFraction></span><span style="font-family:'Verdana';"> at January 31, 2024), representing an aggregate accrued liability of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_c7xWq_rUTUGmtX8kqY7lRA">38.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_9dr_ESHozkGYB7--17Ai9w">27.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2024). During 2025, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsGrantsInPeriod" scale="0" id="Narr_WmcCX9dM8EG3VxxR-103Gg">21,392</ix:nonFraction></span><span style="font-family:'Verdana';"> DSUs were granted and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA" decimals="0" format="ixt-sec:numwordsen" name="dsgx:DeferredShareUnitsRedeemedAndSettledInCash" scale="0" id="Narr_vGMJsiVG4ECL_RylJfjBug">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> DSUs were redeemed and settled in cash. As at January 31, 2025, the unrecognized aggregate liability for the unvested DSUs was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="0" id="Narr_nC-rAMQJrUCHirlwyxbeXw">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="0" id="Narr_t19NO4XBPkiKlI6uYKPhfg">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> at January 31, 2024). The fair value of the DSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to DSUs recognized</span> <span style="font-family:'Verdana';">in our consolidated statements of operations was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" scale="6" id="Narr_3hZtgT_F7Eeg1Yl2a2QUHw">13.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_-KLFiDtj70OXO11uoPl3PQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" scale="6" id="Narr_pObH5EdClE-B2eMtcNMW1A">6.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_9NHSdIjPZ0aePdeZGMz4og" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" scale="6" id="Narr_F1r-y2xqfkO02N8J-s0dlw">3.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the years ended January 31, 2025, 2024 and 2023, respectively.</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">82</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_nioGNh8Za0eikPFN1XYAtw_1_4"></a><a id="Tc_HnrMn2EGEk2zIQkMluNB9g_2_4"></a><a id="Tc_Dr5pHLmzKE2YKRZ-TtgT6g_3_2"></a><a id="Tc_Ae-veuaCFE-1D359HLuMnA_3_4"></a><a id="Tc_rVASjmKShUayYKqxbCimVw_4_2"></a><a id="Tc_u_PDOOeqk0ihohid1c7mPQ_4_4"></a><a id="Tc_rp5gDBMhfE-KrVZbs1gVzQ_5_2"></a><a id="Tc_88z9FbtK5kyJLuiVXDzrwg_5_4"></a><a id="Tc_OOgA_MGO6keoRjS63cROxg_6_0"></a><a id="Tc_trzL7rwASUuWKR77EDdPrg_7_0"></a><a id="Tc_IRgxMwftREyZEe_Uqk6pbA_8_0"></a><a id="Tc_jnwth9mrQ0ys6lGoETJyhQ_9_0"></a><a id="Tc_BzBwMB_dGEef_NZG0WdN8A_10_0"></a><a id="Tc_dEKPKMrLm0Wu8lSueTn8gg_11_0"></a><a id="Tc_CXz5AkEtlE6ANTfWbXb03w_12_0"></a><a id="Tc_zw5qF39sEUKv35jvbHpJiw_13_0"></a><a id="Tc_65u3Mw5qEUi3RckkNPHWzQ_15_0"></a><ix:continuation id="Tb_Feqsk7s-f02EvQvb428yGg_cont4"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of activity under our CRSU plan is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" id="Tb_Y_Cnwqu51kW4FlFYwIKf7A" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_8VVMLyMtlUu96EZ3TZI7EA_6_2">14,583</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_XDRGSfeTJU6ZTbY0GTmKRA_6_4"><span style="font-family:'Verdana';"> 1.4</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsGrantsInPeriod" scale="0" id="Tc_ncEAQCrSJkaOW8ATjUSMDA_7_2">7,879</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsVestedAndSettledInCash" scale="0" id="Tc_BnTGIhSTwkGTUS7LT4c77w_8_2">11,092</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_QiKGi14njU-rS_P1tF-cSQ_9_2">11,370</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_J8s_54qQe0ilhe3xU2nBsA_9_4"><span style="font-family:'Verdana';"> 1.8</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsGrantsInPeriod" scale="0" id="Tc_hKHCCx_umUWjUu1avEyWNQ_10_2">8,579</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsVestedAndSettledInCash" scale="0" id="Tc_0UykZ-5RxU-SxZw-cwnxjg_11_2">7,333</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsForfeitedInPeriod" scale="0" id="Tc_b7wjM8siIUKNozkXbv7pTQ_12_2">599</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_A1wvGjSakk2jJRevS6_Vfw_13_2">12,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_m_enM5vP0EuYQ7nADtWVDQ_13_4"><b style="font-family:'Verdana';font-weight:bold;"> 1.7</b></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="INF" format="ixt:numdotdecimal" name="dsgx:CRSUAwardNonvestedNumber" scale="0" id="Tc_w_WlboiOh0eUJxTNQAISig_15_2">12,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" format="ixt-sec:duryear" name="dsgx:CRSUAwardNonvestedWeightedAverageContractualLife" id="Tc_GWr_PreFi0qlchow591Qrg_15_4"><b style="font-family:'Verdana';font-weight:bold;"> 1.7</b></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_pOL8xJrfKk674SqBN-Lbyw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_fhHotC6NcU-hYo7kz5nL0Q">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2025 (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_-ZGdd0zQYk-OMCj5VH7s_Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_x9eNvAA5zEKHKZ8yKBpL9w">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2024). As at January 31, 2025, the unrecognized aggregate liability for the unvested CRSUs was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_pOL8xJrfKk674SqBN-Lbyw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_JxpNrrYBx0-xHkht7sqztQ">1.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_-ZGdd0zQYk-OMCj5VH7s_Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_BCY_HqI_MEisB_qXA6klJg">0.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2024). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized in our consolidated statements of operations was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_jtU7415FjECejIXz3gks4Q" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_4BUAWFX0WU-ISoHYeKxz_A">0.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_NIQBOw-JzkawB0TaLNxtyg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_gAe1oXqAskWlNudiHB3AGw">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_DS62IYIGQkSDYdw6UNHjEA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_zRVGNs2Hxkegf-F9H7Ec6Q">0.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the years ended January 31, 2025, 2024 and 2023, respectively.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_IVWgkuRe4kSYgqBgB6yHbw_1_2"></a><a id="Tc_HnOW6SEZGUWxuvOU63qJvQ_1_4"></a><a id="Tc_r9cEkFchI0Cq0u3i1qHlcw_1_6"></a><a id="Tc_RAs1C_ypKk6GAS-EaDFzig_2_0"></a><a id="Tc_KYiuz_HwBUuzVics3CHVkw_2_2"></a><a id="Tc_zJkRL2KGPEaEWubZFqfhug_2_4"></a><a id="Tc_CYit08BEYEucaHoXodF72g_2_6"></a><a id="Tc_vXOB1CiVHEut6z11VM3g3A_4_0"></a><a id="Tc_4VXcRQ92q0iVH3XIOCFvcg_5_0"></a><a id="Tc_dbUT8w9NHkylXc1NV6EmpQ_6_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:IncomeTaxDisclosureTextBlock" id="Tb_art64Tm3y0WSUcdihUoruQ" continuedAt="Tb_art64Tm3y0WSUcdihUoruQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;18&#160;- Income Taxes</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Income before income taxes is earned in the following tax jurisdictions: </span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" id="Tb_C0JJspqBK0i2cb8bHhfu9Q" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_0iKeHmL2tU28576VyAXrXQ_4_2">60,119</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_VAPmJGmaDkGWdXMhqwdOFA_4_4">53,246</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_6hLcfUEnSEi-TEH0JLnD1A_4_6">49,158</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_N_G2W9LEqk-3dz5iBwnvYw_5_2">92,637</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_QBCfAi-P7UOJh6100ZK_KQ_5_4">62,346</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_0xWCyO7keEaQCxdsG16teQ_5_6">51,268</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_fMV0qR3nFUCuRc0jsWU5_A_6_2">38,877</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_yBW7s6ZWrUiV2eKI7EGOfw_6_4">35,560</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_6kSHpZuNVEyrbPH8OUjQxQ_6_6">33,302</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_0zeUL7kJJEagxbVqP-5ShQ_7_2">191,633</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_PTnBJKgw60SFRy8JD_vlAQ_7_4">151,152</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_jGNqjMB-MEalkxAgLnn86g_7_6">133,728</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">83</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_YkCFdRLbZkSRTlPe9zFD8w_1_2"></a><a id="Tc_6z4S2H53MEebjBpSk2ndTQ_1_4"></a><a id="Tc_1TKFKoNyq0WtXB18eueuJw_1_6"></a><a id="Tc_XvLYjxFJL0ORozcjS0NqiQ_2_0"></a><a id="Tc_Spg9Q26rvUG3a-VWnGLWWA_2_2"></a><a id="Tc_zmFSOhdNj0qai17mzE20AQ_2_4"></a><a id="Tc_Ya30hB_J60eAnqLzUhEgtA_2_6"></a><a id="Tc_QRBkn8-1C0yDOiLXFNdqRA_3_0"></a><a id="Tc_WErWXEAchkqfbCBOTcEsZA_4_0"></a><a id="Tc_MqUejXMFNkGvfjCftrUMCg_5_0"></a><a id="Tc_VbYLe2KpX0e82S0Xl67onQ_6_0"></a><a id="Tc_rjjPEoqWAk64R32ulft_jw_8_0"></a><a id="Tc_FnrWRIZyNUiGSBtWeirCwA_9_0"></a><a id="Tc_SEM7Y3e4I0OVb6bS03xIKg_10_0"></a><a id="Tc_xp99cMpgjUW7FlXcjJd8Pg_11_0"></a><a id="Tc_rW_Xxy0QZ0OIAWMVbjfksg_1_2"></a><a id="Tc_L7EZ81-gI067Wp5M2ejmDg_1_4"></a><a id="Tc_XPBG5vkCZUKTR2WKIegz4w_2_2"></a><a id="Tc_TNQ-ApJBlECuskdDwmBlAg_2_4"></a><a id="Tc_6wK1NSX8kkC1q8ZLAszFhw_3_0"></a><a id="Tc_Zo-t1xIIhk-1mvteabo9vA_4_0"></a><a id="Tc_7aui2Clze0WQ-FBZQw6QyQ_5_0"></a><a id="Tc_BhhohKGMMEGlsHei2-OYHQ_6_0"></a><a id="Tc_O7gRD3fXA0qyjgMY15C6Yg_7_0"></a><a id="Tc_ekfa45tHyUOeDfvVwTbjPw_8_0"></a><a id="Tc_OvYOlis8z0yfHBeptdL1bg_9_0"></a><a id="Tc_twWLcE1Iykah7zjKW9K92g_10_0"></a><a id="Tc_BiaoWUj5X0uyemndc_gKUg_11_0"></a><a id="Tc_7StAvgDYykGSN0jHmMc9dQ_12_0"></a><a id="Tc_wYNeQtXgdEWWVDooA8_2xg_13_0"></a><a id="Tc_vJnZ8Coyp0-u1joTOE2PQw_14_0"></a><a id="Tc_ScI-k9y77k2c-cIC5hb-Rw_15_0"></a><ix:continuation id="Tb_art64Tm3y0WSUcdihUoruQ_cont1" continuedAt="Tb_art64Tm3y0WSUcdihUoruQ_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Income tax expense (recovery) is incurred in the following jurisdictions:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="Tb_3UMQPQQUck2hVoIsvVm5Vg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_QTY2forl2UWh4zzHLEB4AA_4_2">22,282</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_akydEO7oI0u1XF6vZpxuIw_4_4">16,376</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_sg5g8UmsYEq0y4tf4rDXrw_4_6">9,673</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_bx1LicsXZkWvynA9Dg0wIw_5_2">18,020</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_4Tj4CX4g-kytILbpyzx_nA_5_4">16,532</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_3UscJ8whzEKiDoxJCwuaRg_5_6">13,085</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_QfMDBSlkqUOjJJMVt9_hmA_6_2">13,100</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_lmsB5vZbV0-FR1YeNbN7HQ_6_4">8,315</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_kjoa0tI2MEGKq0VFwTXncg_6_6">5,490</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_3MduTbU8Fk-gyQxzigqXlA_7_2">53,402</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_l-Rlu_LVZ0yOA3lWuvEnmQ_7_4">41,223</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_j78RQgW7q0qTG1oM-NgpBA_7_6">28,248</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc__LGykUsRiU6GDjslE9yiZA_9_2">3,875</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_i1rMANJnb0S3snR7XGG1Xw_9_4">2,369</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_WdR1I9QmBU-HY_tQSpEl8A_9_6">5,059</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_URkDujKiP02uMLI_lmtUrQ_10_2">585</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_Ny-0EJSStU2t4jd8ZpKlEw_10_4">5,060</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_fOjj3yzXn0eS0okqCbJzPA_10_6">1,888</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_NBHq46ulsEOwl5158fQeHQ_11_2">1,752</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_MoD2pT-eKkyVfUoruR_4Sg_11_4">1,451</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_0mOiRwZzQUi_kQoIc5dlrA_11_6">73</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_C6l8Kew7oEavetObsfmxLg_12_2">5,042</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_I6lCpOTCekqDpzOcqQTyRA_12_4">5,978</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_SemoAiYk30elAQMtf8V9qg_12_6">3,244</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_EZwXHAPcckKw1h6IG3iqCw_13_2">48,360</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_fPhAPmvToUOo23eJgQBpJQ_13_4">35,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_W7rvgztPhkONSZqvtZ68jw_13_6">31,492</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Income tax expense for 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="dsgx:IncomeBeforeTaxesPercent" scale="-2" id="Narr_tgT33NPID0SFGsnu3fxj1w">25</ix:nonFraction>%</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="dsgx:IncomeBeforeTaxesPercent" scale="-2" id="Narr_-cA_BTCgeECoaR8cSJNZ2Q">23</ix:nonFraction>%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="dsgx:IncomeBeforeTaxesPercent" scale="-2" id="Narr_s7IcUK6EdUCTwVv0zC2Hww">24</ix:nonFraction>%</span><span style="font-family:'Verdana';"> of income before income taxes, respectively, with current income tax expense being </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="2" format="ixt:numdotdecimal" name="dsgx:CurrentIncomeTaxRateContinuingOperations" scale="-2" id="Narr_Yg9dcQKQ3U6k8BF6psRNuQ">28</ix:nonFraction></span><span style="font-family:'Verdana';">%, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="2" format="ixt:numdotdecimal" name="dsgx:CurrentIncomeTaxRateContinuingOperations" scale="-2" id="Narr_j6-SIGUkmU2OLJblG_MprA">27</ix:nonFraction></span><span style="font-family:'Verdana';">% and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="2" format="ixt:numdotdecimal" name="dsgx:CurrentIncomeTaxRateContinuingOperations" scale="-2" id="Narr_gz6-VVg9m02eLaAzBhMqjA">21</ix:nonFraction>%</span><span style="font-family:'Verdana';"> of income before income taxes, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2025 as compared to 2024 primarily due to a decrease in tax attributes available to shelter income in Canada and the United Kingdom.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2024 as compared to 2023 primarily due to a decrease in tax attributes available to shelter income in Canada and the new requirement to capitalize research and development expenses in the United States.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax recovery decreased in 2025 as compared to 2024 primarily due to the utilization of tax attributes in the Unites States partially offset by full utilization of tax attributes in the United Kingdom and Canada in the prior period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense decreased in 2024 as compared to 2023 primarily due to the capitalization of research and development expenses in the United States in 2024 and the increased utilization of tax attributes in Canada in 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of the deferred income tax assets and liabilities are as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="Tb_An1lCSKntUmNOMs9J-5ncQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accrued liabilities not currently deductible</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" scale="3" id="Tc_AdzX8Gsg1U6NPECqtuWtdQ_4_2">10,326</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" scale="3" id="Tc_88XOFprGJ0Wd8B361m5lvw_4_4">11,736</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accumulated losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsAccumulatedLosses" scale="3" id="Tc_1_2p4V3ZzEOcPOLtI4mjaQ_5_2">2,813</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsAccumulatedLosses" scale="3" id="Tc_hoxMimfNz0CtS_0-PcWezQ_5_4">2,397</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="Tc_q647modSlUerXv9-4iOg3w_6_2">9,653</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="Tc_JDSMn_NWSUqqzNusSuKczA_6_4">9,088</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Research and development expenditures and tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" scale="3" id="Tc_NK9QLIl5rEun4rw89RNQfg_7_2">9,683</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" scale="3" id="Tc_6z2lphsPtUmMLbd6aJpeWQ_7_4">7,680</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGross" scale="3" id="Tc_qq2jvTIaMkOO1_mUePP8GQ_8_2">32,475</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGross" scale="3" id="Tc_HU5Jr3vtU0O1eV5TVqvWag_8_4">30,901</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" id="Tc_ZGmfYcl0y0yDQ8hAU5BWGA_10_2">53,346</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" id="Tc_uPjdL-ehJEqI6UMrsqGthw_10_4">42,423</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Temporary difference on equity derivative and related party debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="Tc_vYG-tSEtokOvkjuKjKTShw_11_2">6,990</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="Tc_VVcZQB5chEC90njkNcFBjw_11_4">5,513</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" id="Tc_ZbGwpTc0pkmUGCI-ssr18w_12_2">60,336</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" id="Tc_Lj0y2nHeJ0ec_oY5loHDHQ_12_4">47,936</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsNetBeforeValuationAllowance" sign="-" scale="3" id="Tc_U6QEE32Uo0KD5I_2Le3pzQ_13_2">27,861</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsNetBeforeValuationAllowance" sign="-" scale="3" id="Tc_bzVDNW4dfkWgzHTmdlVxDQ_13_4">17,035</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="Tc_LVi8y6tkVUeGbI0m8aHD5g_14_2">2,464</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="Tc_aQOE8gD-FUqiMg7YibBnCA_14_4">1,969</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes, net of valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsLiabilitiesNet1" sign="-" scale="3" id="Tc_42xXf0QwMEOSRFeo-_qn8Q_15_2">30,325</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsLiabilitiesNet1" sign="-" scale="3" id="Tc_1kEXrG-jU06H_d94reGRQA_15_4">19,004</ix:nonFraction>)</span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">84</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_RyT4j2irPEG7MPAIH4Bumw_1_2"></a><a id="Tc_JL5ZupXxBE2-86LpD8lJ_w_1_4"></a><a id="Tc_a_Xgze8kuE6kicpZVB27Ow_1_6"></a><a id="Tc_-Hb_Od__j064kU2qXl1vfA_2_0"></a><a id="Tc_ibt4wI9nokaH6Q18zIq26A_2_2"></a><a id="Tc_3ogOxQdR4EqCH-1uUZDmiw_2_4"></a><a id="Tc_vmQJPqzip0qzeFzaykOg_A_2_6"></a><a id="Tc_VdAwnjmu7EiyLonTHVmXlg_3_0"></a><a id="Tc_xTeCgZG3i0-P95HCt3lyxA_5_0"></a><a id="Tc_s1e4eGQyOkmUni9H4MfYdA_5_3"></a><a id="Tc_NoRdDxLPj0yx2iNQqZdYJA_5_5"></a><a id="Tc_waGFi5Bo3E2elvTyaU0TOA_5_7"></a><a id="Tc_xKlRBzvGVEePjHyaM_6AGg_7_0"></a><a id="Tc_S-xK5bUH4EC-P5AiEBdfIQ_8_0"></a><a id="Tc_jStS0NAp5kSHZuKT16hZ9Q_9_0"></a><a id="Tc_bFdd9BeZ_U25JBkvCAVqTg_10_0"></a><a id="Tc_qn4n_ehNkkWvYNy1t92D3Q_11_0"></a><a id="Tc_Spqy6lUIwUmvSi7_MoFmiQ_12_0"></a><a id="Tc_dB5NC9Y59EKlHdk6Tkx5-w_13_0"></a><a id="Tc_h2h0fMVhXEG-aguTXHD14g_14_0"></a><a id="Tc_nf1L3_--_kiO7TwVxfWIGA_15_0"></a><a id="Tc_qVG86VQq006D1WOz7kM-IA_16_0"></a><a id="Tc_hAsDowm8tE2ZZ8qhzxvjEg_17_0"></a><a id="Tc_bxrKpwSJp0yZKjPtXt32ZQ_1_4"></a><a id="Tc_BOrVNbQ9wkakY5qOZNUU3A_2_0"></a><a id="Tc_VA7159jBr0uj8hol8sCrtg_2_2"></a><a id="Tc_0NO5CtjzI0qVMjlEyG6uSw_2_4"></a><a id="Tc_HKDcumfo_kKl-0qZjmyg6A_2_6"></a><a id="Tc_Shky62nX4E2JAGglqbBuJA_2_8"></a><a id="Tc_SrDETvo1wUK_EmUzvgaTeA_2_10"></a><a id="Tc_i1b0OlXsp0ae--RDRZuEqg_3_0"></a><a id="Tc_wm7gPcrqs0WVIQzMEcIclA_3_2"></a><a id="Tc_lAzOxNsubkaLLQr740Y5UA_3_4"></a><a id="Tc_dzHfnVr1eUOuwOvgQwhEiw_3_6"></a><a id="Tc_bE9NbBIrWUy-KggxvQ-awQ_4_0"></a><a id="Tc_k8d1YIlG00aQgLDcykzcOQ_4_2"></a><a id="Tc_4afWUNu3GUS8ibbv_csP6g_4_4"></a><a id="Tc_aXQ1gVJxREKKjN4IkKoyaQ_4_6"></a><a id="Tc_2zrBolXCGkyQUE7LCwe-NQ_5_0"></a><a id="Tc_YBLD9SyaIEajdA1lR5XCxA_5_2"></a><a id="Tc_gvRf5NCojEuv7cPovd6vZQ_5_6"></a><a id="Tc_LBl2JFynCE-mKQ6gz8TJ4A_6_0"></a><a id="Tc_hajQhOQR0kexRb5Yvgd_wA_6_2"></a><a id="Tc_oRSE84sKkkiRLMQiRUkJ1Q_6_6"></a><a id="Tc_dj6iTajM2UO5ZmUSuUXwDg_7_0"></a><a id="Tc_rbEmflJCPkimnxhjX9Z96A_7_2"></a><a id="Tc__iRB2kmh90aedmqo2j0ypw_7_6"></a><a id="Tc_H2P_H7xDq0euAfkj-4T0sA_8_0"></a><a id="Tc_XbB6cwucI0WW5_eW8E-1Vg_8_2"></a><a id="Tc_LMKwiI7TEUm1LZdHu8_Jgg_8_6"></a><a id="Tc_h93fENLQF0-UVwzzpxJ-Iw_9_0"></a><a id="Tc_W3YqHxBPRUC5PEzmzEQ44w_9_2"></a><a id="Tc_-z20dsP2cEOknpQE2wMjaw_9_8"></a><a id="Tc_fwOESa1vVUG0olGqLTzkGA_10_2"></a><a id="Tc_6Co6x-rUWUSE4JX-NQZj1g_1_2"></a><a id="Tc_PFlFqC94tEiuh3dZ077tzw_1_4"></a><a id="Tc_zSQOQ1WcJEGG2QNIzuP_tA_2_2"></a><a id="Tc_0RQXTGIuKEqeGzKSIWQYCQ_2_4"></a><a id="Tc_yScmJNenRkGqH38iq2VRRg_3_0"></a><a id="Tc_GNsNdisawUS3jAn3LjnPsA_4_0"></a><a id="Tc_LtMTbJvjCkuapu8R0yRVpA_5_0"></a><a id="Tc_KvBzggK9ikK1Li3CC_eFwQ_6_0"></a><ix:continuation id="Tb_art64Tm3y0WSUcdihUoruQ_cont2" continuedAt="Tb_art64Tm3y0WSUcdihUoruQ_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UndistributedEarningsOfForeignSubsidiaries" scale="6" id="Narr_01Rmv84R40iu2NPwu3v2pw">1,305.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="Tb_7O2izuPz8EylL8pDVmVhpA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_RqdRNMxCJ0eLZuLmHwaRvg_3_2">191,633</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_PWWxZ052N0eQhKZDtyAx5g_3_4">151,152</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_pL_mngafaUmn5_ioNFrk8A_3_6">133,728</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Combined basic Canadian statutory rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_YPexUFAkuU-0CXBld7Jx9Q_5_2">26.5</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_QV5zSOrCBUuwf6f_JDzJeA_5_4">26.5</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_0jxm02CeFUiINHDohJmcdw_5_6">26.5</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense based on the above rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_8GPuhwFiJEuWfLCma1g6jQ_7_2">50,783</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_sZ14UqrXBEGZtg_HUbk0Ew_7_4">40,055</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_xTm2R4tA3kKaVNe57bd0Tw_7_6">35,438</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Increase (decrease) in income taxes resulting from:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Permanent differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" scale="3" id="Tc_k_YXLtpIXUeZ_3vAoFYV8Q_9_2">1,490</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" scale="3" id="Tc_l0uM_04UJ0-_Ya6DbVn52g_9_4">124</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" scale="3" id="Tc_lZMq-Wq0Q0-kYRSwZTdYMg_9_6">590</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of differences between Canadian and foreign tax rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" sign="-" scale="3" id="Tc_O9ptw9i4_U2seHQ8nVStgA_10_2">2,042</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" sign="-" scale="3" id="Tc_lnAf6icV0Em3oTD_V3R2eA_10_4">1,293</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" sign="-" scale="3" id="Tc_IbKl7wWBtESN3nl4dEagtg_10_6">1,859</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of rate changes on current year timing differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate" sign="-" scale="3" id="Tc_-CODvusPuE2qsXo3-mDYNg_11_2">424</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate" sign="-" scale="3" id="Tc_KTg00Klw-Uq_k7FTHi1qyA_11_4">48</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate" sign="-" scale="3" id="Tc_JQR0_S0H6UWLe-q7kOQH9A_11_6">219</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Change in estimates relating to prior periods</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" scale="3" id="Tc_HgmnUnIry0-SGnIcAPvrgA_12_2">66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" sign="-" scale="3" id="Tc_vNiypsjnQEKZvN3tLMXq2A_12_4">2,888</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" sign="-" scale="3" id="Tc_5dPeQqj4DUGL6e_DoZXrHg_12_6">972</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase (decrease) in accruals for uncertain tax positions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" sign="-" scale="3" id="Tc_36JGyeNHV0CwpS4YY_molw_13_2">544</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" sign="-" scale="3" id="Tc_eDBa81NTTEC5G4aOiidPkg_13_4">117</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" sign="-" scale="3" id="Tc_s_3fTIdm50KrBK6TPRheaw_13_6">1,181</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" id="Tc_Px7-Qz_3y0SZ-1XOx61OBg_14_2">564</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" id="Tc_yKfQv7WbXEWUa_HhxyLyRw_14_4">263</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" sign="-" scale="3" id="Tc_cNXLp7vEAkGjo2Me2dEhyg_14_6">155</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Research tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="Tc_rJm3HaEwcEOfr6KKb8-WfQ_15_2">2,230</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="Tc_X-osMYK1N0ubXqBT4UoSkA_15_4">1,488</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="Tc_5iNkxtnGFE-O0cqlyjMg2g_15_6">734</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other, including foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" scale="3" id="Tc_jwcBo_yJikeUbJGVgdbyzw_16_2">697</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" scale="3" id="Tc_KIWtOrV0mEyzt2UpQ6EA9g_16_4">637</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" scale="3" id="Tc_OCbUQu95pEqXO1TnG7a5ig_16_6">584</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_FzW8_cpC6UWr6i2ts2j-tw_17_2">48,360</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_S4kPzKBcDkeOiEfkNKz8RA_17_4">35,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_yA2qJILpKEiKcut500Z-Yg_17_6">31,492</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We have income tax loss carry forwards which expire as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock" id="Tb_4UTPdhoYgk-y-x2qpMOPkQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">United</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Asia Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_3j4e5-jopUCuwOT7r9w5xQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_mL125LZc7UO3v491S6by7w_3_8">59</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_cF3lCKZeh0uLtkgqRwexGA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_AhH7fHdjokOxT6jhPHMGKg_3_10">59</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_UNlyxZM3hk6ZRUuIXDvwvA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_q-4CFSUkE0aMW9RgYxzoWA_4_8">191</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_sr0Fc9u8EU24M6v4sHahyw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_4D7asjfBJkuEOaMh_yTqvQ_4_10">191</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_1xVhbZdd-EuD2JQisUWomQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_6O5Ud1b-vUa_Qp9REAyx6g_5_4">138</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_0Df-t5-gekqr2k71X68bpg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_JRDC5VffIUaVeP_8mUMuHA_5_8">50</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_tBzmlWb46kiWfyP_tsdHjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_CnN40YrBb021VKxOb5f6lw_5_10">188</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_9pnCE8-9X0uPmySAJcQiNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_N7FGn06Kw0W2nGQiHngTxA_6_4">138</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_7AMjFWKDF0KMgk17-A0t2w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_Sgm-jmUBqU21UhhUGDEXHQ_6_8">8</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_MK1pRYY_5keAuo7akd8z9A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_-YFlNikqGEaXw4DqBjj_nA_6_10">146</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2030</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_P_VnrN2A-EmTzT6Tr3ThKA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_ioSZRBY30kamIc9GsqaVqQ_7_4">138</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member__5l7fqnKr06DiZap5gGcig" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_KWWHlGujj0-JnUoMOe0I_g_7_8">237</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_6rjg4_8y80q_DLW7EVJv_g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_y6ak83EeHUWD7C62Dmw-IA_7_10">375</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_mFekHua1bkKwcC7YUJkJuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_PJ7ziNR5zk2JOA3Xoe4rMA_8_4">310</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_0irSxaP4W0SIphSD7wckcg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_ybFgRfwrvkKVoVvne39bOw_8_8">488</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_AGeTVpKfGE2AQyrdfYv87Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_L8nsy-PueE638QT5gBkazg_8_10">798</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Indefinite</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_WSVHR6MASU2bPA41CrYHCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_ZcLTSOBmC0WXveftfr6JTA_9_4">532</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_l745JJ4S3Eu-LLoh2TtJXw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_YaQPxe39GUqSnBWPOMQVWA_9_6">9,326</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_vR-PnRx9tUuPeLesgK-KnQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_0276xe0kUUGo7EJPiabPYw_9_10">9,858</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_ik1qFM2Dl0-3WPTCDAQ6mA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_H4GNHN5wYE-KP8fz13JZPQ_10_4">1,256</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_zaSzvHyXY0WrY-J15_xwuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_rhvuFGqCuUSMeVNSmPoMTg_10_6">9,326</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_1gxzHRDtdU6rNmfJ39KoFw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_LplpWHQ4B0m7htH-jkz1rA_10_8">1,033</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_z2AqaXPxi0uHYC4y-6Uqiw_10_10">11,615</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="Tb_-l4zEjTftkKTvUaUyypJTg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_wI3A8M-qlkG4vZT0K_I5lQ_3_2">6,153</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_6L9B5_ev0EC1qbtwAsIAJw_3_4">6,120</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Gross increases &#8211; current period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="Tc_OYZ_B1K0oUOTF5NzHpuuVA_4_2">1,476</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="Tc_kAQppQxsAUWpl9dPh5bLZA_4_4">3,946</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lapsing due to statutes of limitations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="Tc_6Hx_xSmjmk2PbDZzZfyK-w_5_2">2,098</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="Tc_OsqQ4pFEjE-UNO1mlzFYgw_5_4">3,913</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_20Zgz6b2ZUyBSWwuZr0QjQ_6_2">5,531</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_Yo4Ltn3Pm0G-l6l_MDAj2A_6_4">6,153</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We have identified accruals of $</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" scale="6" id="Narr_7CrZtn0Md0KE4kL0zlcApw">5.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million with respect to uncertain tax positions as at January 31, 2025. It is possible that these accruals for uncertain tax positions will not be required in which case up to $</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" scale="6" id="Narr_iUv8BG88-kGII-Ziaf-QSQ">5.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million of the recorded liability will decrease the effective tax rate in future years if this liability is reversed. </span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">85</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><ix:continuation id="Tb_art64Tm3y0WSUcdihUoruQ_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We believe that it is reasonably possible that $</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" scale="6" id="Narr_QeLfzKCbpE-S40OlCvJHrQ">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million of the uncertain tax positions could decrease tax expense in the next 12 months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January 31, 2025 and January 31, 2024, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Years No Longer Subject to</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> Audit</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Tax Jurisdiction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States Federal</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2017 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United Kingdom</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Sweden</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Norway</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2018 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Netherlands</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2019 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Belgium</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Germany</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2019 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Switzerland</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Brazil</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_CadMheCS-UK55L5UspEKXA_1_2"></a><a id="Tc_Y-mQ9mZU10qYLC2kQI3Reg_2_2"></a><a id="Tc_hO2zExaTTEqH2LAkHVzFPg_3_0"></a><a id="Tc_GFP8LM2yekGFACUH1eFpRw_4_0"></a><a id="Tc_9Kw-vciCp0CdwAMlZvDCDw_5_0"></a><a id="Tc_ze3sLP7kb0OuSFdNc2I5pg_6_0"></a><a id="Tc_SyGISVV3CE-V5T0XTOab6Q_7_0"></a><a id="Tc_wpTbGznK506E_QOf5GhvHA_8_0"></a><a id="Tc_ksiOev1u2kypVaaz0UkozQ_9_0"></a><a id="Tc_uzLHP0bnk0m30EThXuIwqw_10_0"></a><a id="Tc_MNbC9VJIt0a9cn1ne_bv1g_11_0"></a><a id="Tc_k82ejWSDIUKVDvbJP1S6cA_12_0"></a><a id="Tc_Ginjxcmeo0anwfSfUkyRxQ_13_0"></a><a id="Tc_Y4YclF-o10uK63raoSOFzw_14_0"></a><a id="Tc_Kxm_aFSrDU6pSOOhrehsjg_15_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="Tb_fYlOrQd97EWWa9dnREblrw" continuedAt="Tb_fYlOrQd97EWWa9dnREblrw_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;19&#160;&#8211; Contract Balances, Performance Obligations and Contract Costs</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the deferred revenue balance as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Group_17ZyDhFFQUe3KUj5ceshBA" continuedAt="Group_17ZyDhFFQUe3KUj5ceshBA_2" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_F5gsCUwGAU2mVkPs6vbaVQ_3_2">69,399</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" sign="-" scale="3" id="Tc_C9CdCG4e0Umtfu2s_5_WiA_4_2">56,102</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" scale="3" id="Tc_M5UzP4qXn0e5kkFhcwu4TA_5_2">72,483</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_4-j-hkClD024uZyPMGay7A_6_2">115</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" scale="3" id="Tc_z87lQfo3oEuZtyh5nFWPzw_7_2">82</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_pnasnCKYe0CKXQZElckmIA_8_2">85,977</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="3" id="Tc_4QkeyjoZJ0un0oHQDNLc-w_9_2">68,389</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" scale="3" id="Tc_8RSPlC3DIECpXramYXSF-A_10_2">86,328</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_UlvzOEz8vUig1uON7AJ0Mg_11_2">2,195</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" sign="-" scale="3" id="Tc_BdasOCIqx0WJSCGWa9M0nQ_12_2">903</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_2XzCpEex2EWW_tKSZoCP6Q_13_2">105,208</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_QoHgY-OVn0elNSN3jNiHdQ_14_2">104,230</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" scale="3" id="Tc_1gnH2nCmFEKOQO021mHP1Q_15_2">978</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligation" scale="6" id="Narr_XrCPpU6mYke7tCdzr9XLsg">528.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_rb6gGZ4q1kaOAlwk7tVpPA">80</ix:nonFraction>%</span><span style="font-family:'Verdana';"> of these remaining performance obligations over the next </span><ix:nonNumeric contextRef="As_Of_1_31_2025_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20250131_eO2sMHH-bE2AK25_xCq_Bg" format="ixt-sec:durwordsen" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Narr_YUDX_QfdI0S9KFkIOqRiYg"><span style="font-family:'Verdana';">24&#160;months</span></ix:nonNumeric><span style="font-family:'Verdana';"> with the balance recognized thereafter.</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">86</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_8CrOK4-O60eqXxBi73_9Gg_1_2"></a><a id="Tc_gby9bcVS60O5N8EOk6aSTQ_2_2"></a><a id="Tc_5_h1E0JVUEulK080ITiLtA_3_0"></a><a id="Tc_4NDwcVe_cUyXPdg7ni8n8A_4_0"></a><a id="Tc_6jIJOn2goEm46Y4w8LF1MA_5_0"></a><a id="Tc_GS4uUyl-UkubUvWisGCXfQ_6_0"></a><a id="Tc_pZitggMGykmsEEmch4x5Ng_7_0"></a><a id="Tc_gdn5_iuptk-dCnZLqwSSIw_8_0"></a><a id="Tc_bFCAtxl3RkmjOzfk-zIerw_9_0"></a><a id="Tc_H3BZVqU3uEq5z3Z7tPdXlg_10_0"></a><a id="Tc_aH32RSi9YUSo9cC_uDIlDQ_11_0"></a><ix:continuation id="Tb_fYlOrQd97EWWa9dnREblrw_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the contract assets balance as follows:</span></p><ix:continuation id="Group_17ZyDhFFQUe3KUj5ceshBA_2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_1a1FjDVNpEy4D0nI41xiqw_3_2">3,222</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetReclassifiedToReceivable" scale="3" id="Tc_I4NtVuNBu0inC9vWAQ4mZg_4_2">1,291</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForRevenue" scale="3" id="Tc_K6G128ZzHk66JcmsC1QSWA_5_2">1,104</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" sign="-" scale="3" id="Tc_Qr7nGJswdUit7xyIlMQAxQ_6_2">6</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_7LwcJhTcj06x7d3C8n_15w_7_2">3,029</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetReclassifiedToReceivable" scale="3" id="Tc_5jWFTt8lsEq_cGWCOb-JSg_8_2">1,585</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForRevenue" scale="3" id="Tc_QC3RBGAtZkKAArRjnm4Xfw_9_2">6,008</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" sign="-" scale="3" id="Tc_GL5OboI1TUuqJA2aPN5yHw_10_2">31</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_97GGfnLfsUGlXQmm4KUTiQ_11_2">7,421</ix:nonFraction></b></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Capitalized contract costs net of accumulated amortization is </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostNet" scale="6" id="Narr_tjkIcGBthUSVpGovjw7qcw">19.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2025 (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostNet" scale="6" id="Narr_Kk-3glm0T06QBQ0H1FN2xA">18.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January 31, 2024). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates.</span> <span style="font-family:'Verdana';">The total contract cost amortization included in sales and marketing expenses was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_DHYf32pnHESwyh7D53rJ5A">6.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_dqxEM9Gx90CIziMNTNGFXQ">6.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_S_jy6E1hsUWPltW0ppuDXw">5.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the years ended January 31, 2025, 2024 and 2023, respectively.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="Tc_s0fRYzlPQE-YsF_OIF1mOQ_1_2"></a><a id="Tc_q2pcs6NdFUmq-lwSX5ji5Q_1_4"></a><a id="Tc_0zzQOxY090SpVqV0uN9tzg_1_6"></a><a id="Tc_LyO95XldqkCZV5QJrq9zmQ_2_0"></a><a id="Tc_JJJTOB1SGUCIG63IYE7akg_2_2"></a><a id="Tc_g88Q9WU9Y0S1UmmpJIr6hA_2_4"></a><a id="Tc_PHdFiu1XpEeCo7fOtl1tqQ_2_6"></a><a id="Tc_FOKJVoFlJUaGwTTO0cggGQ_3_0"></a><a id="Tc__yyw2_r1pkewGKRkwOUzpA_4_0"></a><a id="Tc_UN6-0iUauUGYswvAb58oaw_5_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock" id="Tb_CMVMGKyT1kyGRYWeaTGdRA" continuedAt="Tb_CMVMGKyT1kyGRYWeaTGdRA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;20&#160;- Other Charges</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</span> <span style="font-family:'Verdana';">Contingent consideration adjustments relate to changes in anticipated acquisition earnout payment accruals primarily as a result of increases or decreases to revenue performance and forecasts. Revenue forecasts are updated on a quarterly basis and the related earnout payment accruals are updated accordingly.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables shows the components of other charges as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" id="Tb_qoihwKai7k-dglNhjR8O6A" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_PcErdvYlF0-pasX6GfpzYw_3_2">5,803</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_KG9cudEe-Ui526fX4-V48w_3_4">3,697</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_l8ORR9731UaVch0NS_rHlw_3_6">2,560</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration accretion and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_-kzAC8ig-k2Rd5c5cK_RMA_4_2">707</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_18WAtiMfiUCvm9fbJaOPpQ_4_4">16,334</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_F3jhY99BQUSCPXh_h4-bUg_4_6">2,804</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_srGFO34GZ0KzpixZssm7dg_5_2">956</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_esznDJ-z5UqCYLRf3ODdZg_5_4">1,618</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_uhgXvOnWVECWnFuyuz2GjQ_5_6">77</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_DuxQ_ddHOkCT_QuJMPK4rA_6_2">7,466</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_Uke92Mj9a0-yeuw6rUSKeg_6_4">21,649</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_713I-nnVrUmXdPDiR0mZmw_6_6">5,441</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fiscal 2024 Restructuring Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In the third quarter of fiscal 2024, management approved and began to implement the fiscal 2024 restructuring plan to reduce operating expenses and increase operating margins. To date, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7gQhquhRE0-RMmApKKBsRQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostCostIncurredToDate1" scale="6" id="Narr_NaH4v4sO20WllBv_7lM6xw">1.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of office closures and workforce reduction charges. As of January 31, 2025, we expect total remaining office closures to be nominal.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">87</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_K9PzgWF1NUOcLveU53AZDA_1_2"></a><a id="Tc_bvXAqgA-_Ey8DOoXAuREIA_1_4"></a><a id="Tc_Ab-KGO2n40OWg6AEWACpRw_2_2"></a><a id="Tc_DeMdZWTp5kSziLvH-eeq4Q_2_4"></a><a id="Tc_6TqR4pAUgE6D_QpVBrbylg_2_6"></a><a id="Tc_TPVKnlkMRUuV7MAO51oGlQ_3_0"></a><a id="Tc_IijXj_UJA0a9yAlU8LbbUA_3_4"></a><a id="Tc_oX_M93z72UmEL7ArIn-1WQ_4_0"></a><a id="Tc_txVQ2UjMkUuCFJLNprKaHg_5_0"></a><a id="Tc__dG2Vmszt0WgaKfiCzw3cQ_6_0"></a><a id="Tc_nimjSsHXpU20hOsrovj1Gw_6_4"></a><a id="Tc_0Y5Cc44_Z02cRl3Pth_chA_7_0"></a><a id="Tc_eZSqIWvtckSPFAL0vrCRjA_7_2"></a><a id="Tc_hf1OrrZjVkq8vV_f1FGBjA_7_4"></a><a id="Tc_NkG0uyliSEeigo23Z4HRKg_7_6"></a><a id="Tc_Vfp9Q72REUCmNJ1DKiHcHw_1_2"></a><a id="Tc_cwQDkHAm6E2A_w-K8bVgEA_2_2"></a><a id="Tc_DTk8V7AhbkWq9cg2L5sA9g_2_4"></a><a id="Tc_S9AvcbK4-EmCeW3lz4k4kg_3_0"></a><a id="Tc_bMB_GjgVl0iPI32GRMfCIw_3_2"></a><a id="Tc_B74E7TN6KkmVbZUTaBnbvg_3_4"></a><a id="Tc_PO_Ps6QrAkyleN-AwwFYvg_4_0"></a><a id="Tc_gxSLdDfilkSCMU176jEn5Q_5_0"></a><a id="Tc_Z2mhXfAkZ0OdNwevmifgMw_6_0"></a><ix:continuation id="Tb_CMVMGKyT1kyGRYWeaTGdRA_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the changes in the restructuring provision for the fiscal 2024 restructuring plan:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g" name="us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock" id="Tb_XCLKGKxFdUKu2qB5VfTDIg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Office&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Closures</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_I7EM2AKm_U-5rl0tPVWxow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="Tc_pCuYXu7A9kqPMriy_GKCpw_3_2">442</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7kb5wGJr-U2vLu3NNbphCg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="Tc_rp1htBoXZU6PWrL-EddmwQ_3_6">442</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Accruals and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_dNvw5-S8CEqmDW7RTKqEcg_4_2">66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_jsfYlX7eF0GpmFoQQelk0Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_yZsufAUsgkmxeX5oBu4yzA_4_4">112</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_dECouXnexEa17cAFYhPSpQ_4_6">178</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Cash draw downs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_d3vY5tiq1k2x9dMJ9snqUw_5_2">503</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_jsfYlX7eF0GpmFoQQelk0Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_ErEva9frUU2uHEqcb0jOPg_5_4">112</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_jTlxc-_1aUa-mrVK3flK1w_5_6">615</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Non-cash draw downs and foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="Tc_aorXJd4yh0yAQb8i2Beifg_6_2">5</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="Tc_Stj6DFo7RU27Hm8FannHeA_6_6">5</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fiscal 2025 Restructuring Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In the fourth quarter of fiscal 2025, management approved and began to implement the fiscal 2025 restructuring plan to reduce operating expenses and increase operating margins. To date, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_AIPkZ424DU6umDEWWArldg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostCostIncurredToDate1" scale="6" id="Narr_iZNEmvv6-k-Im4cP1okGmA">0.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of workforce reduction charges. As of January 31, 2025, we expect total remaining workforce reduction costs to be incurred of approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_8ySeS4DWS0qjpKMDGIQ7TQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1" scale="6" id="Narr_3dxePtfCtEWqW8uv-dWRsw">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_16NvNRUppkGMDdkLb8VATA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1" scale="6" id="Narr_gME_o72Cm0m0vlaRWNjYjQ">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the changes in the restructuring provision for the fiscal 2025 restructuring plan:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q" name="us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock" id="Tb_uBLTfFrc-EiNvYTzMxGpzQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accruals and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_wmj07YaPfEmX4sPnv_udag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_f0tCr0GWvk6VuEcJCCXyxQ_4_2">778</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_675wNfcy90KP-W0w8SXzeA_4_4">778</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash draw downs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_wmj07YaPfEmX4sPnv_udag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_Xur4dWJWAEOsH5zrYXoj0Q_5_2">616</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_A67MGMx_BkuBjpq05F0xvw_5_4">616</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_JtoQqghEdUOfZGuRuBrLAA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="Tc_sBQkaRGhz0SaDWf7gb1c_g_6_2">162</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_AIPkZ424DU6umDEWWArldg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="Tc_PuDXi1DCoku75cUKENVl9A_6_4">162</ix:nonFraction></b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><a id="Tc_jLYJQVnYw0WRklLKLD_hdA_1_2"></a><a id="Tc_2MVj5-m5kECow4hqu1WXJQ_1_4"></a><a id="Tc_q2zzPklitka8S2gpJlmLCA_1_6"></a><a id="Tc_fCMHKSMsFUaA9J8kfD-OCQ_2_0"></a><a id="Tc_7eNQEs3PNkGQKaDcDrjryg_2_2"></a><a id="Tc_kBl68b3b_kWxBzmt-4znOQ_2_4"></a><a id="Tc_njdECXfJakySpLblcSWH0w_2_6"></a><a id="Tc_q1EAwDr0q0WQB6nc-t5jMQ_3_0"></a><a id="Tc__W4RGSamN026Q2TzbZLe0w_4_0"></a><a id="Tc_dL9j7DjCgkOqtUKVVlMbBA_5_0"></a><a id="Tc_juUbj_v1ukOhWLvZwMvYfw_6_0"></a><a id="Tc_0P3kAQ-bFk6YHwWXkfWTKA_7_0"></a><a id="Tc_NecRqcqR8kyZdIRwI1rd3A_8_0"></a><a id="Tc_FaTiOGkis0-jA80HQfWwUA_9_0"></a><a id="Tc_TiZKXbk1o0SLvEF4m1J_7g_10_0"></a><a id="Tc_Sf8BjW54h02muHTxFgiUqw_11_0"></a><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:CashFlowSupplementalDisclosuresTextBlock" id="Tb_o4fQU0o3hkyxcM4Qik26bw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;21&#160;&#8211; Supplemental Cash Flow Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables present cash provided by (used in) operating activities related to changes in assets and liabilities:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" id="Tb_NFr04bc6V0OZt-KzB6Nd9w" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_oh-yRG0bO0m-dwTSAvKzMg_3_2">3,299</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_N0gZ-sRDJ0uyfKemNdXcyg_3_4">6,566</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_Nip2ZY0jp0CBUD7SQHPx3A_3_6">151</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" scale="3" id="Tc_60A43rjP-U-IsYBgFwexzw_4_2">1,802</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" scale="3" id="Tc_B01sTPDvcU66_JBoTPxNSA_4_4">683</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" sign="-" scale="3" id="Tc_qteFdbqoCUG1J4tlnAqhpQ_4_6">2,589</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_gxctoOTRjUC-kn-VIlhAgA_5_2">14,712</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_OVLvlHb9JUCvv-1dbJzRrQ_5_4">8,039</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_AjaxcMICS0Kv_eboIQAK_Q_5_6">5,560</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="Tc_74ufW6e1KkOWA4jXE_6Jlw_6_2">1,868</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="Tc_MphI5nqzk0euNcIMyTL3Hg_6_4">6,180</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" sign="-" scale="3" id="Tc_OqxQSlY3Q0WorQJaWa9GGQ_6_6">620</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" sign="-" scale="3" id="Tc_YB--I3tMb0uVpOGBvOON0g_7_2">9,017</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="Tc_XEuwe7GTO0mDz_adf44ixg_7_4">9,270</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="Tc_Xw8MASTSF0iBI4BrNs0hRQ_7_6">2,433</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" scale="3" id="Tc_uG3M_CUYHkyaZFcqx3rX3A_8_2">956</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" sign="-" scale="3" id="Tc_oMdhqDJlpUmoG8J_wWV7Nw_8_4">446</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" scale="3" id="Tc_4j4gvj-Y8Em33B8lLrikIQ_8_6">753</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" sign="-" scale="3" id="Tc_eFCEiwnOvEScQTFimM3www_9_2">349</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" scale="3" id="Tc_G8M5Kjf0hkCE-6sfMl-kpw_9_4">325</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" sign="-" scale="3" id="Tc_WxQicZG4KUmdi9zMM1iXtg_9_6">95</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_iZLtFUpGukOU6HKYnyNecg_10_2">5,825</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_S7cCm_3nA0CcSrInGrbJdA_10_4">15,141</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_rONdzNVb9kGPE-WrMY7Xbw_10_6">8,142</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Changes in operating assets and liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" scale="3" id="Tc_dXsvuKbJ9EGekUS_AY_ABA_11_2">13,932</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_Kq1TS6denUmTht-JjGxZsA_11_4">15,182</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_gjZtftYZx0SlGsXh1_JprQ_11_6">7,793</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:SegmentReportingDisclosureTextBlock" id="Tb_ywYrV-PUpE6thWI4IBC8rg" continuedAt="Tb_ywYrV-PUpE6thWI4IBC8rg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;22&#160;- Segmented Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_segment_2f_V29RRlkaFYgf_PufsGw" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_-UGGmQRemE-UYKYPCVg7fA">one</ix:nonFraction></span><span style="font-family:'Verdana';"> reportable business segment providing logistics technology solutions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">88</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_-gItim1AokqxFAGqxMofsA_1_2"></a><a id="Tc_DePp5Is4BEORISBcJ48vwQ_1_4"></a><a id="Tc_1hxyO2Cd30uJzgjvt8xM6w_1_6"></a><a id="Tc_AXWla7aGfUKKUrsy2Ta2kQ_2_0"></a><a id="Tc_kQMI9tE920iUsfbKy8GgYA_2_2"></a><a id="Tc_4fCnCUVXtkO7yGRdXouFfw_2_4"></a><a id="Tc_hdJkYB6_DkSAV-Xll7qtSg_2_6"></a><a id="Tc_960NB6QuXU-Fy3X4NdQzKA_4_0"></a><a id="Tc_gAdnAAiuLUabS1hnUbUFzA_5_0"></a><a id="Tc_o1QlQb5Ma02ps7NsrzmDUw_6_0"></a><a id="Tc_6hp3NyedaUeJ2K89L55wmQ_7_0"></a><a id="Tc_88drBYWQyEK8VVhuU6Ikcw_8_0"></a><a id="Tc_jQjdMaT8Z0qlji28XrFlHw_9_0"></a><a id="Tc_11Shjq-GEk-qL7sbYsA-LQ_10_0"></a><a id="Tc_UBD2Q5yDQUq2oaZOZbk5Vg_11_0"></a><a id="Tc_EsrETkSFIEqWB_rsmXfyUw_13_0"></a><a id="Tc_gux5eN69WUaTNeRwIhnAVQ_14_0"></a><a id="Tc_3AZf2C9DUES9bq3865_j9w_15_0"></a><a id="Tc_W49SjVm1k0eItHGJUMRcng_16_0"></a><a id="Tc_2vtnf6jYa0eHy88hWBf5sw_17_0"></a><a id="Tc_p8w2bxXPxkOwWDFH-ee-BQ_18_0"></a><a id="Tc_yxneE1k-BUO1PhhO9ls2cw_20_0"></a><a id="Tc_6VX7TLrGPUS-Xj8MFF_Mpg_21_0"></a><a id="Tc_gqr6Q13VuUmVai3Col2c9w_22_0"></a><a id="Tc_3GWYpQC3f0mYWAz1J_YrgQ_23_0"></a><a id="Tc_3QQiUR4pek-Bbth9Bpa-dw_24_0"></a><a id="Tc_P8cdZ6hN2k-djI134kNfvA_25_0"></a><a id="Tc_FdwfeQRNIEaxVeI1seYekQ_26_0"></a><a id="Tc_GQX_bH8DFkS8k6sRP7BckA_27_0"></a><a id="Tc_GHe1007QikmxMwnHKJBoZA_28_0"></a><ix:continuation id="Tb_ywYrV-PUpE6thWI4IBC8rg_cont1" continuedAt="Tb_ywYrV-PUpE6thWI4IBC8rg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company has determined that it has a chief operating decision maker (&#8220;CODM&#8221;) comprised of the Company&#8217;s chief executive officer and president &amp; chief operating officer. The CODM assesses performance for the Company and makes operating decisions based on consolidated net income and Adjusted EBITDA. The term &#8220;Adjusted EBITDA&#8221; refers to a financial measure that we define as earnings before certain charges that management considers to be non-operating expenses and which consist of interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges, acquisition-related expenses, and contingent consideration incurred due to better-than-expected performance from acquisitions). Management considers these non-operating expenses to be outside the scope of Descartes&#8217; ongoing operations and the related expenses are not used by management to measure operations. Accordingly, these expenses are excluded from Adjusted EBITDA, which we reference to both measure our operations and as a basis of comparison of our operations from period-to-period. Adjusted EBITDA is a non-GAAP financial measure and may not be comparable to similarly titled measures reported by other companies. The CODM uses net income and adjusted EBITDA to assess overall performance of the Company and to evaluate whether to reinvest profits or invest in acquisitions. Asset information is not regularly provided to the CODM and as such the CODM does not make decisions based on assets. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following table provides a breakdown of the measures of profit regularly provided to the CODM:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="Tb_TPI4-IGsgUKqcVBeqdU5EQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="Tc_2fKhrcu6pkWPJ6hBts-hWQ_4_2">651,000</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="Tc_WJS1VFYqgE6YYKU5kHzGnw_4_4">572,931</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="Tc_VD2IyXFDHE2iICl3ZEJmLg_4_6">486,014</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Less:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Headcount-related costs, including stock compensation expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LaborAndRelatedExpense" scale="3" id="Tc_yKzVKcmp5Eybb5SbmDbUpA_6_2">249,887</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LaborAndRelatedExpense" scale="3" id="Tc_eCKwdqqHT0-XX-Del52Tnw_6_4">226,897</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LaborAndRelatedExpense" scale="3" id="Tc_WkFpxGTqB0-OIPGVlu6lTQ_6_6">195,261</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cost of revenues and network charges (exclusive of other items presented separately)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:CostOfRevenuesAndNetworkCharges" scale="3" id="Tc_ae3-8cRr80O3WzBPKm9Gdw_7_2">67,212</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:CostOfRevenuesAndNetworkCharges" scale="3" id="Tc_OWr5ty-uI02lZz0pW_bNMA_7_4">53,797</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:CostOfRevenuesAndNetworkCharges" scale="3" id="Tc_bk8dQ9pJeE-al1EPVszmnQ_7_6">33,996</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">SaaS software and maintenance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostMaintenance" scale="3" id="Tc_15Jg7M6Vv0KD50QYee0taw_8_2">23,066</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostMaintenance" scale="3" id="Tc_nJk5eTpeEUO-p5p-QnoZ7g_8_4">19,908</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostMaintenance" scale="3" id="Tc_mEqzUT3KUkeunlWLs9pMBw_8_6">16,476</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other segment items</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:SegmentReportingOtherSegmentItemAmount" scale="3" id="Tc_jK2seXgD40ewdKvXMrOofA_9_2">54,723</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:SegmentReportingOtherSegmentItemAmount" scale="3" id="Tc_S6y1J0q5cU6y7AiZjRocNQ_9_4">63,505</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:SegmentReportingOtherSegmentItemAmount" scale="3" id="Tc_zlwUUCNF9EK3Z4fTPnIs9w_9_6">44,445</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_zZISrXLU-k-E-dZKRM6BeQ_10_2">5,589</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_wEMvU-_VvUiz9U1WBYAN1g_10_4">5,474</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_iy3QbggsEEuPm9gb6HEQHA_10_6">5,225</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_L_UGXzNaOESHNEQpLzxOag_11_2">69,399</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_gJUvTr_6WkiriyT3uzcaSQ_11_4">60,501</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_d3FXfeBrx0qcFNrKFOZfRw_11_6">60,177</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostsAndExpenses" scale="3" id="Tc_IdsV8vGl-UOnhqsng4Cd3Q_12_2">469,876</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostsAndExpenses" scale="3" id="Tc_Qm0FU6OjS0So9EQIpAUjQA_12_4">430,082</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostsAndExpenses" scale="3" id="Tc_RgFWycmS0EmdN649Gd2PUw_12_6">355,580</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income from operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_cpn8Dd0A30qUh6phsX-JPg_13_2">181,124</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_1txnd90IWUuTK8Gsp_Z2dg_13_4">142,849</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_umCjOjOgg0WGoTLzbn4gsQ_13_6">130,434</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_G0Ju5iy9-EWenVU4VMq-YA_14_2">1,004</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_HgaaeEfaZEm4RMjIByvcuA_14_4">1,363</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_UkdJwGc-aUi0G7iiOYs8Jg_14_6">1,167</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_n3okGgdfBUmZp5ROepZNcg_15_2">11,513</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_jT7sZvZ3_UG7hQDebtPIMw_15_4">9,666</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_g49ykhfGEkmNp09QJUjffQ_15_6">4,461</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_36NPLAykEUeuPChFYP4s5w_16_2">191,633</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_Hd575-OB7EKg9TXArWWyuw_16_4">151,152</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_QLGHY6XCrUy0UhnmlQqg_A_16_6">133,728</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_1SWUTJd5H0K1t5tGeMGZlA_17_2">48,360</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_WoA9P0uki0229r4bHx_UsA_17_4">35,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_GuuRDMhiykauY4Fr4ZlzSQ_17_6">31,492</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Net income</b><span style="font-family:'Verdana';">, as reported on Consolidated Statements of Operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_jsza5fXCtE2JEm6IOcskJw_18_2">143,273</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_9_LW8S6wTUa0xc1MstroKw_18_4">115,907</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_9mfquMGr10qFH28Ic5NKYA_18_6">102,236</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Adjustments to reconcile to Adjusted EBITDA:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_4qgxm4DkdEaj_S2LActtyQ_21_2">1,004</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_ZTmdNcqjsUaSaoZkvimQXQ_21_4">1,363</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_U04ubzBA40anY9pyBF9gOg_21_6">1,167</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_Gz6qWzSDekCl5Sv_07TATw_22_2">11,513</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_LJLB15MMVU2ZfYzy_oof6w_22_4">9,666</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:InvestmentAndOtherIncome" scale="3" id="Tc_DKJq1AXUGEaoiNVux4HxcA_22_6">4,461</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_XlPyJC7exUagBlZ815heVg_23_2">48,360</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_liKQsKU0FE6gKWDkNoObqQ_23_4">35,245</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_G31H0Po6m0ejeomRwsjpFA_23_6">31,492</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Depreciation expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_SEwltcGYkU-MCN24EXmKZQ_24_2">5,589</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_Xr7UccggHECqFkRKjCuadQ_24_4">5,474</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_Nr3pSGm740mJh19-ft5Rgg_24_6">5,225</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_4Covfopmgk2QWLhu_qJDfg_25_2">69,399</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_bhyoXB4Ff0K6FEJejwiL3Q_25_4">60,501</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_FU4JijCKyEied4zGCZF-JQ_25_6">60,177</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Stock-based compensation and related taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationExpenseAndRelatedTaxes" scale="3" id="Tc_E_bXlZCphkGrzo0-hKiIGg_26_2">21,098</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationExpenseAndRelatedTaxes" scale="3" id="Tc_WoatcotN906OsJyuLISDIw_26_4">17,005</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationExpenseAndRelatedTaxes" scale="3" id="Tc_kWkBraGpQ0uk4i0Qso_Q0g_26_6">13,920</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other charges (Note 20)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_oYprBhud3E2oTR5WD6ab2w_27_2">7,466</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_xSC1dUD8O02etEhGY7hE6A_27_4">21,649</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_bDAf1fbkSUW-wuOJZszdLQ_27_6">5,441</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" scale="3" id="Tc_GhWgvvt7UUSwmL18k07GaA_28_2">284,676</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" scale="3" id="Tc_viyo-Ut_QkiPOwROCVFIsA_28_4">247,478</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" scale="3" id="Tc_hLpsnXx_uEeg4lgMLIRbKA_28_6">215,197</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other segment items includes travel expenses, reseller fees, contractors, corporate cars, bad debt expense, occupancy, insurance, marketing, employee administrative costs, professional fees, board of director fees, foreign exchange gains and losses, and other expenses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p></ix:continuation></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">89</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><a id="Tc_9EXni4aJW0WjWubUnPDz_A_1_2"></a><a id="Tc_hYU9YQ7ajkyW5YMpA0K_jQ_1_4"></a><a id="Tc_ECo9qJEUMkeuTO0XFtEVQw_1_6"></a><a id="Tc_tbYWy9wZL0OueRBHTsZlOQ_2_0"></a><a id="Tc_j3cQFk1wN0mMsgWQbq_4wA_2_2"></a><a id="Tc_zDtNUt1iKkOcIvopqmIfOg_2_4"></a><a id="Tc_G3WxCGQ0OUu2TP2cj4oe1A_2_6"></a><a id="Tc_7EuWGRkJBUezoUW66oSEMQ_3_0"></a><a id="Tc_BvtjVZhdmkevHgprwjpiCA_4_0"></a><a id="Tc_1NLDR71rAES9wlX1jtVMgw_5_0"></a><a id="Tc_j3LYqC8RmUC4mNulCMdjkQ_6_0"></a><a id="Tc_1SCtDBOVb06RctXR1XBOGA_7_0"></a><a id="Tc_BJYCzSyM90SDKHYkFMimAQ_1_2"></a><a id="Tc_aIMf0rnFz0y8bB_u4XQnGg_1_4"></a><a id="Tc_z90BR6FzJE6NsTbuj-wsfw_1_6"></a><a id="Tc_CfR7s64QAkGEYEY5Jtqk_Q_2_0"></a><a id="Tc_Ey0uMH_28EygefECJ_L6Ww_2_2"></a><a id="Tc_GxukD7_nhU-4PSme3sepMg_2_4"></a><a id="Tc_W9kgod5MiUe6qaOoWNmVbg_2_6"></a><a id="Tc_FRukTuN4s02f_xGeZkp4yA_3_0"></a><a id="Tc_rKD_uz9Mv0GE7biIInBmww_4_0"></a><a id="Tc_-5-UkmsnuUKdTk7ZMiy9vQ_5_0"></a><a id="Tc_kx4GgEaeW0GlAa866l2THQ_6_0"></a><a id="Tc_kPRhGKM48U2HdJvPR8AB-A_1_2"></a><a id="Tc_dNPnUlAdn0C21iuXHWT5Jw_1_4"></a><a id="Tc_zqFPdORjmkG5RNzl0RbzFA_2_2"></a><a id="Tc_bSGUBCihg0-D3VtAg2Zfcg_2_4"></a><a id="Tc_AYVig84nmU6r3_BbJwFfXw_3_0"></a><a id="Tc_gwEeZtGlMUeTdW4tleiZiw_4_0"></a><a id="Tc_uaUjSQ8Tr0OI9qFbjmmjjQ_5_0"></a><a id="Tc_QqRKWUH410qDZcgErwuhlw_6_0"></a><a id="Tc_x5IB04BJs0qC9OJqcqnGmA_7_0"></a><ix:continuation id="Tb_ywYrV-PUpE6thWI4IBC8rg_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" id="Tb_DMdK8DeYsU2RVipADhdXaw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_US_nxGVLzjITEuUmjVwxFftrw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_m29dQGswZkut1ar-j_S28Q_4_2">439,103</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_US_H0t6W-dJt0Gkyzt7yhaFyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_W4033RCysE2n2-kZP2kF-w_4_4">382,176</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_US_GvGGbDDi8kqORlR0hgi5-w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_ir-oyF62Ck6n2SnvI_bMvw_4_6">307,102</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_29vGExNb-0Gh_6J9FwEffA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_c8yf-1g4bkqEG64R9hZLdQ_5_2">153,004</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_8JOnCORSmkWFWsneZm90gQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_Eh6gjDT0e0eHBuSHbzUcUQ_5_4">137,164</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_us-gaap_EMEAMember_fCee2E7iGEGcN50kEsY-aw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc__t-JWZQxC0y8GJlCnCrAkA_5_6">126,942</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_CA_-vHgzPWnkk-KRqWMeD-Bxg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_cG97xcdrmke9-IKrbI3CUg_6_2">39,254</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_CA_4f0jfXCPPkmLxV9dPq_UEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_B-h774LR1UOGAM0PHKnwoA_6_4">35,422</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_CA_S4wbI54qV0Ks31bg1nfgYw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_GqLICxCjk0GEUKqJXdh3fQ_6_6">34,547</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_cXgD9j1dYkCWJaVliFBFvg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_wXwBX0UncEKG_b1wiKSnXA_7_2">19,639</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PpH20IfC6UaKAtZfvmsVEg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_RRQu9qQiyUm4XjfYC02n6Q_7_4">18,169</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_srt_AsiaPacificMember_ZSDkfy0DGkK4vooiBjK3bA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_QhfwnZEIl06TyoT3V7gpxA_7_6">17,423</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_AQFV5Fh9bk6PXN9VxXZGgg_8_2">651,000</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_hZJOxbUftkeXXef03HBcxg_8_4">572,931</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_r13Dd5og3kqitylWsSN5YA_8_6">486,014</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" id="Tb_k-w_AXZ5hkSo5vIEvJpvXQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_LicenseMember_pl2slgTqPEScSNB3qniZ0A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_2eAx9qj_sEa5uV8ouSSYjQ_4_2">5,715</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_LicenseMember_CdETb7LgaU6RNK3pdOKNlA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_Qui-jRF6QEWcEVzgLvt5Qw_4_4">5,326</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_LicenseMember_4vkmpzQ0IE2cNYszp9t6pg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_yH9GldV7jUGXOAfh40GkLQ_4_6">8,385</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_ServiceMember_TQjDDrEHpES7HgWwuIv6fg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_PcurPcb4gECuYs8b-8eDpg_5_2">590,243</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_ServiceMember_PPFpMMaUVUOeYascn3YgvQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_re_aYvcrZUegfEopb2WnGA_5_4">520,930</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_ServiceMember_W6-OgRB8eUyg3o2ollLxKQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_PzgO-eGmyU6ePuh5MCQe3Q_5_6">435,734</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6vyhTEO2dEuYoOglC9AKmA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_UuNeYBuHXE24w0b1yT2vQw_6_2">55,042</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_nkQ8q5WqQ0OUccEnkkdAaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_fERnMU_DaEqMNFkGNIQC-A_6_4">46,675</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_kRe4BfuYO0GeGsb9iXraNA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_IKg_dhBrQkC0_1dzd_c10A_6_6">41,895</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_lhP78R81nEeLix6ym0SYbQ_7_2">651,000</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_fwvg6XHU2EKsCYhWSm5W4Q_7_4">572,931</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_3LiVasTSLEm0350CLYrZng_7_6">486,014</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.</span></p><ix:nonNumeric contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg" name="us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" id="Tb_5XYR2lTeD0GKuxn0ar-vjg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_US_lwCTJQu9yECv4HwkdAswOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_04EqCOG_LUWXTbfpqF-vyg_4_2">246,048</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_US_CGnWX7zQzkCUwngHM5p4HQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_378_gGG8hkmLv4OJlxkV9Q_4_4">178,843</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_roul4JoGLUaLPxzX8GLlKg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_dttEGUlvmEmwF1MqK4M4Aw_5_2">49,737</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_-wEBXuXve0aCbivTb5ScQA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_iR_FgmM4D0ea2Zdptdzw2g_5_4">26,298</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_CA_BRScwaLfe0iYy_ZIBdthfw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_Y1LSc2x_-UmdHiRg6KBzFw_6_2">31,007</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_CA_ILjGiaSF3kCi_5BYAjhR-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_zsY0LTcXAkWJyowNba9jsg_6_4">47,072</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_bQtUUlolAU-5Xau3H5f0rg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_A3317PcgrUOdeK0dqLoGGQ_7_2">6,959</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_RJd80nMB2EemQBVx2w-bdQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_QyZwbRwbcUqomxdFe8SyGA_7_4">10,386</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_Ev5OPcYEI0-V6C26C9iPAw_8_2">333,751</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q" contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_UtwoVAyR9EeXfCYIkhTB7w_8_4">262,599</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">90</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;padding-top:1pt;border-top:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><a id="_b00aeb19_2269_4b17_895d_2286a3654529"></a><a id="CORPORATEINFORMATION_285379"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CORPORATE INFORMATION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock Exchange Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our common stock trades on the Toronto Stock Exchange under the symbol DSG and on The Nasdaq Stock Market under the symbol DSGX.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Transfer Agents</b></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;table-layout:auto;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Computershare Investor Services Inc.</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Computershare Trust Company</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">100 University Avenue</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">12039 West Alameda Parkway</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Toronto, Ontario M5J 2Y1</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Suite Z-2 Lakewood, Colorado</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">North America: (800) 663-9097</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">80228 USA</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (416) 263-9200</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (303) 262-0600</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">KPMG LLP</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vaughan Metropolitan Centre</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">100 New Park Place</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Suite&#160;1400</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vaughan, Ontario L4K 0J3</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Phone: (416) 777-8500</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Investor Inquiries</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Investor Relations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group&#160;Inc.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">120 Randall Drive</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Waterloo, Ontario N2V 1C6</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (519) 746-2969</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Toll Free: (800) 419-8495</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">E-mail: investor@descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">www.descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">The Descartes Systems Group&#160;Inc.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Corporate Headquarters</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">120 Randall Drive</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Waterloo, Ontario N2V 1C6</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Canada</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (519) 746-8110</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:38.15pt;margin:0pt;"><span style="font-family:'Verdana';">(800) 419-8495</span></p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:38.15pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><span style="font-family:'Verdana';">Fax:</span></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><span style="font-family:'Verdana';">(519) 747-0082</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">info@descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">www.descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">91</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;margin-left:-10.0pt;margin-right:-10.0pt;max-width:100%;position:relative;width:calc(100% + 20.0pt);min-height:57pt;"><div style="padding-left:10pt;padding-right:10pt;position:relative;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 200pt 0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 200pt 0pt;"><span style="font-family:'Verdana';"><img src="dsgx-20250131xex99d1033.jpg" alt="Graphic" style="display:inline-block;height:57pt;left:0.28%;padding-bottom:0pt;position:relative;top:0pt;width:284.14pt;"/></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:11pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:11pt;visibility:hidden;">&#8203;</span></p></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">92</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:avoid;width:88.24%;border:0;"></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.2
<SEQUENCE>3
<FILENAME>dsgx-20250131xex99d2.htm
<DESCRIPTION>EX-99.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  10.6.128.0--><!--Created on: 3/5/2025 10:03:41 PM (UTC)--><html><head><meta charset="UTF-8"><title></title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Exhibit 99.2</b></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:6pt;font-weight:bold;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><font style="color:#134169;font-size:22pt;">Press Release</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 5pt 0pt;"><b style="color:#134169;font-size:15pt;font-weight:bold;">Descartes Announces Fiscal 2025 Fourth Quarter and Annual Financial Results</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 5pt 0pt;"><b style="color:#134169;font-size:13pt;font-weight:bold;">Record Income from Operations</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">WATERLOO, Ontario and ATLANTA, Georgia, March 5, 2025 (GLOBE NEWSWIRE) &#8211; </b><font style="color:#4d4d4d;font-size:11pt;">The Descartes Systems Group Inc. (TSX:DSG) (Nasdaq:DSGX) announced its financial results for its fiscal 2025 fourth quarter </font><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">(Q4FY25)</b><font style="color:#4d4d4d;font-size:11pt;"> and year </font><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">(FY25)</b><font style="color:#4d4d4d;font-size:11pt;"> ended January 31, 2025. All financial results referenced are in United States </font><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">(US)</b><font style="color:#4d4d4d;font-size:11pt;"> currency and, unless otherwise indicated, are determined in accordance with US Generally Accepted Accounting Principles </font><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">(GAAP)</b><font style="color:#4d4d4d;font-size:11pt;">.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&quot;Fiscal 2025 was another year of growth for Descartes, highlighted by the addition of numerous complementary services to the Global Logistics Network,&quot; said Edward J. Ryan, Descartes&#39; CEO. &quot;We believe these investments can help shippers, carriers, and logistics services providers manage the increased uncertainty and complexity that&#39;s recently been introduced to the global trade environment. Our customers benefit from our diversity in international and domestic supply chains, our expertise with tariffs, sanctions and other global trade issues, and our expansive roster of connected trading partners as they navigate a quickly evolving trade landscape.&quot;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">FY25 Financial Results </b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">As described in more detail below, key financial highlights for Descartes&#8217; FY25 included:</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Revenues of $651.0 million, up 14% from $572.9 million in the same period a year ago (FY24);</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Revenues were comprised of services revenues of $590.2 million (91% of total revenues), professional services and other revenues of $55.1 million (8% of total revenues) and license revenues of $5.7 million (1% of total revenues). Services revenues were up 13% from $520.9 million in FY24;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Cash provided by operating activities of $219.3 million, up 6% from $207.7 million in FY24. Cash provided by operating activities was negatively impacted in FY25 by the payment of $25.0 million in contingent acquisition consideration for previously completed deals, which was not accrued for at the time of acquisition;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Income from operations of $181.1 million, up 27% from $142.8 million in FY24;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Net income of $143.3 million, up 24% from $115.9 million in FY24. Net income as a percentage of revenues was 22%, compared to 20% in FY24;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Earnings per share on a diluted basis of $1.64, up 22% from $1.34 in FY24; and</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Adjusted EBITDA of $284.7 million, up 15% from $247.5 million in FY24. Adjusted EBITDA as a percentage of revenues was 44%, compared to 43% in FY24.</font></td></tr></table><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues are non-GAAP financial measures provided as a complement to financial results presented in accordance with GAAP. We define Adjusted EBITDA as earnings before interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges, acquisition-related expenses, and contingent consideration incurred due to better-than-expected performance from acquisitions). These items are considered by management to be outside Descartes&#39; ongoing operational results. We define Adjusted EBITDA as a percentage of revenues as the quotient, expressed as a percentage, from dividing Adjusted EBITDA for a period by</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">1</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">revenues for the corresponding period. A reconciliation of Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income determined in accordance with GAAP is provided later in this release.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">The following table summarizes Descartes&#8217; results in the categories specified below over FY25 and FY24 (dollar amounts in millions):</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">FY25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">FY24</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 572.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Services revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 590.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 520.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Gross margin</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Cash provided by operating activities* </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 219.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 207.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Income from operations</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 181.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 142.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Net income</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 143.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 115.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Net income as a % of revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 22</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Earnings per diluted share</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 1.64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.34</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjusted EBITDA</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 284.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 247.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjusted EBITDA as a % of revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.91%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.92%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">(*) FY25 cash provided by operating activities was negatively impacted by the payment of $25.0 million in contingent acquisition consideration for previously completed deals, which was not accrued for at the time of acquisition but was paid due to post-acquisition performance exceeding expectations at the time of acquisition</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Q4FY25 Financial Results</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">As described in more detail below, key financial highlights for Q4FY25 included:</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Revenues of $167.5 million, up 13% from $148.2 million in the fourth quarter of fiscal 2024 (Q4FY24) and down from $168.8 million in the previous quarter (Q3FY25);</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Revenues were comprised of services revenues of $156.5 million (93% of total revenues), professional services and other revenues of $10.7 million (6% of total revenues) and license revenues of $0.3 million (1% of total revenues). Services revenues were up 15% from $135.7 million in Q4FY24 and up 5% from $149.7 million in Q3FY25;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Cash provided by operating activities of $60.7 million, up 19% from $50.8 million in Q4FY24 and up 1% from $60.1 million in Q3FY25; </font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Income from operations of $47.1 million, up 27% from $37.0 million in Q4FY24 and up 3% from $45.8 million in Q3FY25;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Net income of $37.4 million, up 18% from $31.8 million in Q4FY24 and up 2% from $36.6 million in Q3FY25. Net income as a percentage of revenues was 22%, compared to 21% in Q4FY24 and 22% in Q3FY25;</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Earnings per share on a diluted basis of $0.43, up 16% from $0.37 in Q4FY24 and up 2% from $0.42 in Q3FY25; and</font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Calibri Light';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="color:#4d4d4d;font-family:'Times New Roman','Times','serif';font-size:11pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><font style="color:#4d4d4d;font-family:'Calibri Light';font-size:11pt;font-style:normal;font-weight:normal;">Adjusted EBITDA of $75.0 million, up 14% from $65.7 million in Q4FY24 and up 4% from $72.1 million in Q3FY25. Adjusted EBITDA as a percentage of revenues was 45%, compared to 44% in Q4FY24 and 43% in Q3FY25, respectively.</font></td></tr></table></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">2</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">The following table summarizes Descartes&#39; results in the categories specified below over the past 5 fiscal quarters (unaudited; dollar amounts, other than per share amounts, in millions):</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:9pt;visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Q4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">FY25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">FY25</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">FY25</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">FY25</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">FY24</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 167.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 168.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 163.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 151.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 148.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Services revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 156.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 149.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 146.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 137.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 135.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Gross margin</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 74</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 75</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 77</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Cash provided by operating activities*</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 60.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 60.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 34.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 63.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 50.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Income from operations</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 47.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 45.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 45.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 42.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 37.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Net income</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 37.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 36.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 34.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 34.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 31.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Net income as a % of revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 22</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 22</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 21</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 23</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 21</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Earnings per diluted share</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 0.43</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.42</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.40</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.40</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.37</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjusted EBITDA</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 75.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 72.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 70.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 67.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 65.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:48.71%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjusted EBITDA as a % of revenues</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 45</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.96%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.06%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:9pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">(*) Q2FY25 cash provided by operating activities was negatively impacted by the payment of $25.0 million in contingent acquisition consideration for previously completed deals, which was not accrued for at the time of acquisition but was paid due to post-acquisition performance exceeding expectations at the time of acquisition</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Cash Position</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">At January 31, 2025, Descartes had $236.1 million in cash. Cash increased by $54.8 million in Q4FY25 and decreased by $84.9 million in FY25. The table set forth below provides a summary of cash flows for Q4FY25 and FY25 in millions of dollars:</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:9pt;visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Q4FY25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">FY25</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Cash provided by operating activities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 60.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 219.3</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Additions to property and equipment</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (2.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (6.8)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Acquisitions of subsidiaries, net of cash acquired</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (3.7)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (290.2)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Payment of debt issuance costs</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (0.1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Issuances of common shares, net of issuance costs</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 2.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 12.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Payment of withholding taxes on net share settlements</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (6.7)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Payment of contingent consideration</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (9.2)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Effect of foreign exchange rate on cash </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (2.6)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (3.6)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Net change in cash </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 54.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (84.9)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Cash, beginning of period</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 181.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 321.0</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Cash, end of period</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 236.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 236.1</b></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:9pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">3</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Conference Call</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Descartes&#39; executive management team will hold a conference call to discuss the company&#39;s financial results at 5:30 PM ET on Wednesday, March 5. Designated numbers are +1 289 514 5100 or +1 800 717 1738 for North America Toll-Free, using Passcode 45440#.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;line-height:1.37;background:#ffffff;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">The company will simultaneously conduct an audio webcast on the Descartes website at </font><u style="color:#134169;font-size:11pt;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com/descartes/investor-relations.</u><font style="color:#0066ff;font-size:11pt;"> </font><font style="color:#4d4d4d;font-size:11pt;">Phone conference dial-in or webcast login is required approximately 10 minutes beforehand.</font></p><p style="font-family:'Calibri Light';font-size:10pt;line-height:1.37;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Replays of the conference call will be available until March 12, 2025, by dialing +1 289 819 1325 or Toll-Free for North America using +1 888 660 6264 with Playback Passcode: 45440#. An archived replay of the webcast will be available at</font><font style="color:#555555;font-size:11pt;"> </font><u style="color:#134169;font-size:11pt;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com/descartes/investor-relations.</u></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#134169;font-size:11pt;font-weight:bold;">About Descartes</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Descartes (Nasdaq:DSGX) (TSX:DSG) is the global leader in providing on-demand, software-as-a-service solutions focused on improving the productivity, security and sustainability of logistics-intensive businesses. Customers use our modular, software-as-a-service solutions to route, track and help improve the safety, performance and compliance of delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access global trade data; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in the world&#8217;s largest, collaborative multimodal logistics community. Our headquarters are in Waterloo, Ontario, Canada and we have offices and partners around the world. Learn more at </font><font style="color:#134169;font-size:11pt;">www.descartes.com,</font><font style="color:#4d4d4d;font-size:11pt;"> and connect with us on </font><font style="color:#134169;font-size:11pt;">LinkedIn </font><font style="color:#4d4d4d;font-size:11pt;">and X </font><font style="color:#134169;font-size:11pt;">(Twitter).</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Descartes Investor Contact </font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Laurie McCauley</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">(519) 746-2969</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#134169;font-size:11pt;">investor@descartes.com</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 3pt 0pt;"><b style="color:#134169;font-size:12pt;font-weight:bold;">Cautionary Statement Regarding Forward-Looking Statements</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;">This release may contain forward-looking information within the meaning of applicable securities laws (&quot;forward-looking statements&quot;) that relates to Descartes&#39; expectations concerning future revenues and earnings, and our projections for any future reductions in expenses or growth in margins and generation of cash; our assessment of the potential impact of geopolitical events, such as the ongoing conflict between Russia and Ukraine (the &#8220;Russia-Ukraine Conflict&#8221;), and between Israel and Hamas (&#8220;Israel-Hamas Conflict&#8221;), or other potentially catastrophic events, on our business, results of operations and financial condition; continued growth and acquisitions including our assessment of any increased opportunity for our products and services as a result of trends in the logistics and supply chain industries; rate of profitable growth and Adjusted EBITDA margin operating range; demand for Descartes&#39; solutions; growth of Descartes&#39; Global Logistics Network (&#8220;GLN&#8221;); customer buying patterns; customer expectations of Descartes; development of the GLN and the benefits thereof to customers; and other matters.</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">4</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;">These forward-looking statements are based on certain assumptions including the following: global shipment volumes continuing at levels generally consistent with those experienced historically; the Russia-Ukraine Conflict and Israel-Hamas Conflict not having a material negative impact on shipment volumes or on the demand for the products and services of Descartes by its customers and the ability of those customers to continue to pay for those products and services; countries continuing to implement and enforce existing and additional customs and security regulations relating to the provision of electronic information for imports and exports; countries continuing to implement and enforce existing and additional trade restrictions and sanctioned party lists with respect to doing business with certain countries, organizations, entities and individuals; Descartes&#39; continued operation of a secure and reliable business network; the stability of general economic and market conditions, currency exchange rates, and interest rates; equity and debt markets continuing to provide Descartes with access to capital; Descartes&#39; continued ability to identify and source attractive and executable business combination opportunities; Descartes&#39; ability to develop solutions that keep pace with the continuing changes in technology, and our continued compliance with third party intellectual property rights. These assumptions may prove to be inaccurate. Such forward-looking statements involve known and unknown risks, uncertainties and other factors that may cause the actual results, performance or achievements of Descartes, or developments in Descartes&#39; business or industry, to differ materially from the anticipated results, performance or achievements or developments expressed or implied by such forward-looking statements. Such factors include, but are not limited to, Descartes&#39; ability to successfully identify and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; the impact of network failures, information security breaches or other cyber-security threats; disruptions in the movement of freight and a decline in shipment volumes including as a result of contagious illness outbreaks; a deterioration of general economic conditions or instability in the financial markets accompanied by a decrease in spending by our customers; the ability to attract and retain key personnel and the ability to manage the departure of key personnel and the transition of our executive management team; changes in trade or transportation regulations that currently require customers to use services such as those offered by Descartes; changes in customer behaviour and expectations; Descartes&#8217; ability to successfully design and develop enhancements to our products and solutions; departures of key customers; the impact of foreign currency exchange rates; Descartes&#39; ability to retain or obtain sufficient capital in addition to its debt facility to execute on its business strategy, including its acquisition strategy; disruptions in the movement of freight; the potential for future goodwill or intangible asset impairment as a result of other-than-temporary decreases in Descartes&#39; market capitalization; and other factors and assumptions discussed in the section entitled, &quot;Certain Factors That May Affect Future Results&quot; in documents filed with the Securities and Exchange Commission, the Ontario Securities Commission and other securities commissions across Canada, including Descartes&#39; most recently filed Management&#39;s Discussion and Analysis. If any such risks actually occur, they could materially adversely affect our business, financial condition or results of operations. In that case, the trading price of our common shares could decline, perhaps materially. Readers are cautioned not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. Forward-looking statements are provided for the purpose of providing information about management&#39;s current expectations and plans relating to the future. Readers are cautioned that such information may not be appropriate for other purposes. We do not undertake or accept any obligation or undertaking to release publicly</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">5</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;">any updates or revisions to any forward-looking statements to reflect any change in our expectations or any change in events, conditions or circumstances on which any such statement is based, except as required by law.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 3pt 0pt;"><b style="color:#134169;font-size:12pt;font-weight:bold;">Reconciliation of Non-GAAP Financial Measures - Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">We prepare and release quarterly unaudited and annual audited financial statements prepared in accordance with GAAP. We also disclose and discuss certain non-GAAP financial information, used to evaluate our performance, in this and other earnings releases and investor conference calls as a complement to results provided in accordance with GAAP. We believe that current shareholders and potential investors in our company use non-GAAP financial measures, such as Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues, in making investment decisions about our company and measuring our operational results. </font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">The term &#8220;Adjusted EBITDA&#8221; refers to a financial measure that we define as earnings before certain charges that management considers to be non-operating expenses and which consist of interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges, acquisition-related expenses, and contingent consideration incurred due to better-than-expected performance from acquisitions). Adjusted EBITDA as a percentage of revenues divides Adjusted EBITDA for a period by the revenues for the corresponding period and expresses the quotient as a percentage. </font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Management considers these non-operating expenses to be outside the scope of Descartes&#8217; ongoing operations and the related expenses are not used by management to measure operations. Accordingly, these expenses are excluded from Adjusted EBITDA, which we reference to both measure our operations and as a basis of comparison of our operations from period-to-period. Management believes that investors and financial analysts measure our business on the same basis, and we are providing the Adjusted EBITDA financial metric to assist in this evaluation and to provide a higher level of transparency into how we measure our own business. However, Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues are non-GAAP financial measures and may not be comparable to similarly titled measures reported by other companies. Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues should not be construed as a substitute for net income determined in accordance with GAAP or other non-GAAP measures that may be used by other companies, such as EBITDA. The use of Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues does have limitations. In particular, we have completed seven acquisitions since the beginning of fiscal 2024 and may complete additional acquisitions in the future that will result in acquisition-related expenses and restructuring charges. As these acquisition-related expenses and restructuring charges may continue as we pursue our consolidation strategy, some investors may consider these charges and expenses as a recurring part of operations rather than expenses that are not part of operations.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">6</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">The table below reconciles Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income reported in our audited Consolidated Statements of Operations for FY25 and FY24, which we believe is the most directly comparable GAAP measure.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">(US dollars in millions)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">FY25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">FY24</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Net income</b><font style="color:#4d4d4d;font-size:11pt;">, as reported on Consolidated Statements of Operations</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 143.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 115.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjustments to reconcile to Adjusted EBITDA:</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Interest expense</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 1.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Investment income</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (11.5)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> (9.7)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Income tax expense</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 48.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 35.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Depreciation expense</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 5.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 5.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Amortization of intangible assets </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 69.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 60.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Stock-based compensation and related taxes</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 21.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 17.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Other charges</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 7.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 21.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-align:justify;text-indent:-7.2pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 284.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 247.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 651.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 572.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-align:justify;text-indent:-7.2pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Net income as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 22</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;padding-left:7.2pt;text-align:justify;text-indent:-7.2pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Adjusted EBITDA as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">The table below reconciles Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income reported in our unaudited Consolidated Statements of Operations for Q4FY25, Q3FY25, Q2FY25, Q1FY25, and Q4FY24, which we believe is the most directly comparable GAAP measure.</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">7</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">(US dollars in millions)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Q4FY25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q3FY25</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q2FY25</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q1FY25</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Q4FY24</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Net income</b><font style="color:#4d4d4d;font-size:11pt;">, as reported on Consolidated Statements of Operations</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 37.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 36.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 34.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 34.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 31.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">Adjustments to reconcile to Adjusted EBITDA:</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Interest expense</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 0.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Investment income</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> (1.9)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> (2.9)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> (2.7)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> (4.1)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> (3.4)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Income tax expense</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 11.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 11.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 13.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 11.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 8.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Depreciation expense</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 1.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Amortization of intangible assets </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 19.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 17.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 17.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 15.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 15.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Stock-based compensation and related taxes</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 5.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 5.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 5.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 4.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 4.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-size:11pt;">Other charges</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 1.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 1.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 0.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 3.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 7.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 75.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 72.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 70.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 67.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 65.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 167.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 168.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 163.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 151.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 148.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Net income as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 22</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 22</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 21</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 23</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 21</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">Adjusted EBITDA as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;white-space:pre-wrap;"> 45</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-size:11pt;white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">%</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:justify;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.36%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-size:11pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.35%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:6pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">8</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:12pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:12pt;font-weight:bold;">CONSOLIDATED BALANCE SHEETS</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">(US DOLLARS IN THOUSANDS; US GAAP)</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">January</b><b style="color:#4d4d4d;font-weight:bold;">&#160;</b><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">January</font><font style="color:#4d4d4d;">&#160;</font><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">31,</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">2024</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">ASSETS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">CURRENT ASSETS</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Cash</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 236,138</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 320,952</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Accounts receivable (net)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Trade</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 53,953</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 51,569</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Other</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 16,931</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 12,193</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Prepaid expenses and other</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 45,544</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 33,468</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 352,566</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 418,182</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">OTHER LONG-TERM ASSETS</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 24,887</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 24,737</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">PROPERTY AND EQUIPMENT, NET</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 12,481</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 11,552</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">RIGHT-OF-USE ASSETS</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 7,623</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 6,257</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">DEFERRED INCOME TAXES</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 3,802</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 2,097</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">INTANGIBLE ASSETS, NET</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 321,270</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 251,047</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">GOODWILL</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 924,755</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 760,413</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 1,647,384</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 1,474,285</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">LIABILITIES AND SHAREHOLDERS</b><b style="color:#4d4d4d;font-weight:bold;">&#8217;</b><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;"> EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-family:'Calibri','Helvetica','sans-serif';">CURRENT LIABILITIES</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Accounts payable</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 20,650</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 17,484</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Accrued liabilities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 79,656</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 91,824</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Lease obligations</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 3,178</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 3,075</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Income taxes payable</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 9,313</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 6,734</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Deferred revenue</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 104,230</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 84,513</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 217,027</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 203,630</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">LEASE OBLIGATIONS</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 4,718</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 3,903</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">DEFERRED REVENUE</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 978</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 1,464</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">INCOME TAXES PAYABLE</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 5,531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 6,153</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">DEFERRED INCOME TAXES</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 34,127</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 21,101</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 262,381</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 236,251</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">SHAREHOLDERS</font><font style="color:#4d4d4d;">&#8217;</font><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';"> EQUITY</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Common shares </font><font style="color:#4d4d4d;">&#8211;</font><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';"> unlimited shares authorized; Shares issued and outstanding totaled 85,605,969 at January 31, 2025 (January 31, 2024 </font><font style="color:#4d4d4d;">&#8211;</font><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';"> 85,183,455)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 568,339</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 551,164</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Additional paid-in capital</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 503,133</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 494,701</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Accumulated other comprehensive loss</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> (50,497)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> (28,586)</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">Retained earnings</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 364,028</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 220,755</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 1,385,003</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 1,238,034</font></p></td></tr><tr><td style="vertical-align:bottom;width:77.07%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;white-space:pre-wrap;"> 1,647,384</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;font-family:'Calibri','Helvetica','sans-serif';white-space:pre-wrap;"> 1,474,285</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">9</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:12pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-size:12pt;font-weight:bold;">CONSOLIDATED STATEMENTS OF OPERATIONS</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;">(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP)</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">January&#160;31,</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">January&#160;31,</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><i style="color:#4d4d4d;font-style:italic;">Year Ended </i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">2024</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">2023</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 572,931</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 486,014</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">COST OF REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 158,574</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 138,295</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 113,326</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">GROSS MARGIN</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 492,426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 434,636</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 372,688</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">EXPENSES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Sales and marketing</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 73,692</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 68,161</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 56,573</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Research and development</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 95,497</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 84,103</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 70,353</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">General and administrative</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 65,248</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 57,373</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 49,710</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Other charges</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 7,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 21,649</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 5,441</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Amortization of intangible assets </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 69,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 60,501</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 60,177</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 311,302</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 291,787</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 242,254</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">INCOME FROM OPERATIONS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 181,124</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 142,849</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 130,434</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">INTEREST EXPENSE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (1,004)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (1,363)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (1,167)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">INVESTMENT INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 11,513</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 9,666</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 4,461</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">INCOME BEFORE INCOME TAXES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 151,152</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 133,728</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">INCOME TAX EXPENSE (RECOVERY)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Current</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 53,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 41,223</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 28,248</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Deferred</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (5,042)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (5,978)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 3,244</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 35,245</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 31,492</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">NET INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 143,273</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 115,907</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 102,236</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">EARNINGS PER SHARE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Basic</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 1.68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 1.36</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 1.21</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Diluted</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 1.64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 1.34</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 1.18</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Basic</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 85,443</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 85,068</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 84,791</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Diluted</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 87,323</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 86,818</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1.5pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 86,451</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">10</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20250131xex99d2001.jpg" alt="Graphic" style="display:inline-block;height:66.69pt;left:0%;padding-bottom:0pt;position:relative;top:0pt;width:485.3pt;"></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">CONSOLIDATED STATEMENTS OF CASH FLOWS</b></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:11pt;">(</font><font style="color:#4d4d4d;font-size:11pt;">US DOLLARS IN THOUSANDS; US GAAP)</font></p><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Calibri Light';font-size:10pt;border-top:1px solid #000000;margin:0pt;"><font style="font-size:6pt;visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><i style="color:#4d4d4d;font-style:italic;">Year Ended </i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">January&#160;31,</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">January&#160;31,</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">2024</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:center;margin:0pt;"><font style="color:#4d4d4d;">2023</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">OPERATING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Net income</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 143,273</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 115,907</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 102,236</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Adjustments to reconcile net income to cash provided by operating activities:</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Depreciation</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 5,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 5,474</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 5,225</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Amortization of intangible assets</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 69,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 60,501</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 60,177</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Stock-based compensation expense </font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 19,962</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 16,480</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 13,667</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Other non-cash operating activities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 23</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 114</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 53</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Deferred tax expense (recovery)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (5,042)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (5,978)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 3,244</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Changes in operating assets and liabilities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (13,932)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 15,182</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 7,793</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Cash provided by operating activities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 219,272</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 207,680</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 192,395</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">INVESTING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Additions to property and equipment</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (6,743)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (5,563)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (6,071)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Acquisition of subsidiaries, net of cash acquired</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (290,204)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (142,700)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (115,561)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Cash used in investing activities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (296,947)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (148,263)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (121,632)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">FINANCING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;">&#160;&#160;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Payment of debt issuance costs</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (53)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (43)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (1,118)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Issuance of common shares for cash, net of issuance costs</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 12,391</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 9,272</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 1,730</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Payment of withholding taxes on net share settlements</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (6,745)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (4,886)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> &#8212;</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><font style="color:#4d4d4d;">Payment of contingent consideration</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (9,223)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (19,084)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (5,215)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Cash used in financing activities</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (3,630)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (14,741)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (4,603)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">Effect of foreign exchange rate changes on cash</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (3,509)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (109)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> (3,212)</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">Increase (decrease) in cash</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> (84,814)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 44,567</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 62,948</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">Cash, beginning of year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 320,952</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 276,385</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 213,437</font></p></td></tr><tr><td style="vertical-align:bottom;width:69.25%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">Cash, end of year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><b style="color:#4d4d4d;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="color:#4d4d4d;font-weight:bold;white-space:pre-wrap;"> 236,138</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 320,952</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="color:#4d4d4d;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.45%;border-bottom:1.5pt solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="color:#4d4d4d;white-space:pre-wrap;"> 276,385</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:fixed;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:top;width:84.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:15.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:84.46%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:8pt;margin:0pt;"><font style="color:#4d4d4d;">The Descartes Systems Group Inc.</font><font style="color:#4d4d4d;letter-spacing:1.5pt;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">info@descartes.com</u><font style="color:#555555;"> </font><font style="color:#555555;letter-spacing:1.5pt;">|</font><u style="color:#134169;text-decoration-line:underline;text-decoration-style:solid;">www.descartes.com</u><font style="color:#555555;"> | &#169; All rights reserved</font></p></td><td style="vertical-align:top;width:15.53%;border-top:1px solid #0055aa;margin:0pt;padding:0pt;"><p style="font-family:'Calibri Light';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;">11</font></p></td></tr></table></div><p style="font-family:'Calibri Light';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:avoid;width:88.24%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>4
<FILENAME>dsgx-20250131xex99d1001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20250131xex99d1001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" "! H(# 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#]4Z*** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BDS1F@!:*** "BBB@
M HHHH ***3- "T4F:,T +129I: "BBB@ HHHH **0L!U('UI ZGH0: '4444
M %%%% !1110 444FX9QGF@!:*3</44M !1110 4444 %%%% !11574]2M=&T
MZZO[ZYBL[*UB::>XG<)'%&H)9F8\   DD^E %JBO*?V<_P!H+1_VD_"6L^*/
M#T$D>A6NM7.E6=Q*?FNXX0G[_;CY0Y8D \XQGDD#U:@ HHHH **2C- "T4F:
M6@ HHHH **** "BDS1F@!:*3-&: %HI,TM !1110 4444 %%)FC- "T4F:6@
M HHHH **** "BBFEU'\0_.@!U%(&!Z'-+0 44W>N<9&:-XQG(Q0 ZBD!S2T
M%%%% !1110 5\I_\%(_CWXS_ &=/@!9>*? NHPZ9K,NO6UBTTUK'< PO%.S#
M:X(SE%YZ\5]65\(_\%E?^33M-_[&FR_]$7- 'P,/^"KW[2!_YF^P_P#!':?_
M !%'_#UW]I'_ *&ZP_\ !':?_&ZY7_@G5\-O#/Q:_:N\*^&?%^CP:[H5U;WS
M36-SNV.4M9'0G:0>& /7M7[$_P##O;]G;'_)*M%_[ZF_^.4 ?EIH?_!77]H3
M2+I);S4M!UN,')AOM'1%8>F8BA_6OJOX$_\ !9WPMXFO;?3/BAX8D\)RR,%.
MLZ2[75F">[Q$>8@]QOKV?XA_\$J/V??&]E+'I_AJ\\(7C*0EYHFH2@J>Q\N4
MNA_*OS*_;$_X)W^-_P!E16UZ&<>+/ CR;%UNUA*26A)PJW,63LR< ."5)QR"
M0* /W@\+>*]&\;Z!8ZYH&IVFLZ/?1B:VOK*42Q2H>ZL.#_2M:OY^_P!AG]MK
M7_V4_'=O;7MS<:A\.]1F5=6TC)80YX-S /X9%ZD#AP,'G:1^^VAZU8^)-'L=
M5TRZBOM.OH$N;:YA;*2Q.H9'4]P00?QH O4444 >'_MK_%#Q#\&/V8?''C+P
MI=QV.OZ7! ]K<2P+,J%KF)&RC @_*[#D5^1!_P""K_[2&2!XOL/_  1VG_Q%
M?J9_P4J_Y,D^)_\ U[6O_I9!7XC_ +*WA;2?&_[27PVT#7;&/4M'U+7[2UN[
M.;.R:)I &4X(."/0T >V?\/7?VD?^ANL?_!':?\ QNC_ (>N_M(_]#=8?^".
MT_\ C=?J_P#\.]OV=O\ HE6B_P#?4W_QRC_AWM^SM_T2K1?^^IO_ (Y0!^?7
M[)W_  4<^._Q5_:,\ >$O$?B:SN]#U;5([6[@32+:)GC(8D!U0$=.HK]C%.5
M!]J\0\'?L2_ _P  >*--\1>'OASI.EZWILPGM+R$R[X9!T89<C//<5[>!@4
M+1110 A.!7YS_M=_\%;=)^%VO:AX1^%6G6?BO6K-F@N==O6+:?!(,ADB5"#,
M5/5MRKD<%J]X_P""DOQ?U+X-_LF^*=0T:=[35]6>+1;:YC;:T7GDB1E/9O*6
M3!'0D'M7X;? CX1ZA\>OC!X6\!:9<)9W6MW@M_M,B[E@C +22$=]J*QQWQCO
M0!ZYXJ_X*1?M%>++QYY/B/?:;&3\MOI-O#:QI[#:FX_B35?0/^"BW[1?AR[2
M>'XG:I=!3DQZA#!<HWL0\9_2OUM^&'_!-#X _#K0;:SG\%6_BN_5 )M3\0.U
MQ+,V.6V9$:#V51^-6O&G_!-7]G?QI9R1-\/;;19V'RW6B7,MK(A]0 Q0_BI%
M 'QS\ ?^"S^IV][;:;\7?#5O=63$*VN>'D,<L?\ M26[,5<>NQE/'"FOU5T#
M7+3Q-H6G:O8.\EC?V\=U \D;1LT;J&4E6 93@C@@$=Z_-;PI_P $<;7P?^T/
MX<UAO$D/B+X86DYO;FPU"/9?,\>&BMWVC9(C-C<PV_*"-O.:_3=5"J .!0 Z
MBBB@ K%\8^,]#^'_ (;O_$'B/5;71=%L(C-<WUY((XXU'J3W/0 <DX R:U+R
M[AL+6:YN94@MX4:2261@JHH&2Q)Z  $YK\$/V_OVUM5_:B^(MQIFCW<UM\.-
M&N&CTNR4E5O&!(-W*.[-SM!^ZI'<L2 ?4/[0_P#P6=>&]NM)^#OAV&:W0E!X
MA\01M^\_VHK8$$#T,ASZH*^-_%/_  4,_:'\67DEQ<_%#6+(,<B+2Q'9QK[
M1*OZDUZ+^Q%_P3=\0_M/VL7BWQ)>3^%?A\)"L=S'&&N]2*G#" -PJ Y!E;(R
M, -@X_4;P)_P3M_9]\!:?%;6_P -],U>5!\UWKNZ^ED/J?,)4'_=4#VH _&O
M0/V_OVA?#ETEQ;?%37KAE.=E_(EVA]BLJL*^K?@/_P %GO$^EW]MI_Q7\-VN
MN::S!7U?0H_L]W&,C+-"3Y<GT4I^-?>OBO\ 8"_9]\864MM=_"S0;3S 1YNE
M0M92+[AH2IS7Q_XY_P""+6FM\3]!N_"7BV5/ DUZIU?3]3YO;: 99A!*HQ(6
MQM&X*5W Y;% 'Z.?#7XD^'OB[X'TGQ=X5OQJ>@ZI%YUK<B-H]P!*D%6 ((8$
M$$=0:Z>LSPWX<TWPAH&G:)H]E%IVE:=;I:VMI N$AB10JJ!Z  5IT %%%% !
M112$XH "<#FOR#_X*E?MW_\ ":ZA??!WP#J6[P_9R^7XAU.U?B^F4_\ 'JC#
MK$A'SG^)ACHIW>Z?\%._V[Q\']#N?A;X%U#'C?4X,:GJ%N_S:3;./NJ1TGD4
M\=T4[N"5-?C"S%B23DF@#]QO^"/7/[(A_P"QAOO_ $&*ON&OA[_@CU_R:'_W
M,-]_Z##7W#0 4E+10!^6_P#P45_;L^,/[//[0Y\*>"?$%KINB?V1:W?D3:9!
M.WF.9-QW.I/\(XKY@_X>O?M(G_F;[#_P1VG_ ,;K>_X+"?\ )WI_[%^Q_G+7
ML'_!*+]F7X7_ !R^$GC'4_'?@W3_ !+?V>N"V@N+LR;HX_L\;;1M8<9)/XT
M>!+_ ,%7OVD0P)\6V# =CH=K@_\ CE>J?"/_ (+/?$30=6@A^(7AS2/$^C,P
M$L^EQ&RO4'<K\QC;'7:57/\ >%?H/-_P3P_9TGC*-\*]' /=))U/YB3-?FC_
M ,%-/V&_#O[,UUH'B_P()[;PGK5P]E-IEQ*TWV*Y"[UV.V6*.H;AB2"AY((
M /V#^#WQB\*?'?P%IWC#P;J::IHUZ" V-LD,@^_%*G5'4]5/L1D$$]M7XJ_\
M$=_C7?\ A#X_7GP_EN6;0_%=G*Z6[-\J7D"&1) .Q,8D4^OR^@K]JJ "J.MW
M,EEHU]<0G;+%!)(A(S@A21Q]15ZH[BWCNH)(94#Q2*4=3T((P10!^#K_ /!5
MS]I%6(_X2ZPX/_0#M/\ XBD_X>N_M(_]#=8_^".T_P#C=?J__P .]OV=O^B5
M:+^<W_QR@_\ !/;]G;!_XM5HO_?4W_QR@#\GS_P5>_:0!P?%]A_X([3_ .(I
M?^'KW[2/_0W6'_@CM/\ XW7GW[>W@'P_\,/VL_'WAGPMI<&BZ#82VJVUC;YV
M1!K2%VQDD\LS'KWK[V_X)I_LE?"'XQ?LQ6?B'QEX$TW7]:?5;R!KVY,F\HC*
M%7Y7 P,^E 'R5_P]=_:1_P"ANL/_  1VG_QNOLW_ ()C?MD_%7]I;XD^+](\
M?:W;:I8:=I"7=O'#I\-L5D,ZH3F-03P3P:^DO^'>W[.W_1*M%_[ZF_\ CE=S
M\*/V9?A?\#=5O=2\">#;#PU?7L(M[B>T,FZ2,,&"G<QXR ?PH ]/HHHH *_.
MS_@IY^V-\4OV9_'?@O3/ .MVVE6>IZ;-<W*3Z?#<EW6;:"#(I(X["OT3K\@/
M^"W/_)4OAM_V!KG_ -*!0!XN/^"KW[2)Z>+[ _\ <#M/_B*/^'KO[2/_ $-U
MA_X([3_XW7HG_!)7X _#WXZZM\2HO'OA:R\31Z;!8-:"\+_N2[3A\;6'7:O7
MTK]&_P#AWM^SM_T2K1?^^IO_ (Y0!^4'_#UW]I'_ *&ZP_\ !':?_&Z^^O\
M@EW^U3\1_P!INP^(DOQ U>WU5M'DL5L_(L8K;8)1.7SY:C=G8O7ICWKV7_AW
MM^SM_P!$JT7_ +ZF_P#CE>B_"3]GWX>? E-33P%X5LO#*ZF8S>"S+_OC'NV9
MW,>F]NGJ: /0Z*** "LCQ;XMT?P)X:U+Q!K^HV^DZ-IT+7%W>W3[8X8U'))_
MH.22 .36O7Y>_P#!:SXP:CIFB^!_AM8SO!8ZF9=8U)4;'G+&P2!#ZJ&,C8]5
M4]J .-_:(_X++>(M1U6ZTOX/Z+:Z3I4;%%UW6H?.NI\$_/'!G9&#VW[SCJ%Z
M5\IZI_P4&_:(UBZ:>;XIZW$S'.VU\JW0?140"MG]@#]D*#]K?XJWMAK%_-IW
MA70K=+W4WM"!/-N?;'#&2"%+$,2Q!P%.!DBOU_T#_@GS^SUX=TN.Q@^%NB72
M(H4S:@KW4S>Y>1B<T ?D/X-_X*;_ +17@ZY20^/'UR =;;6K&"X1O8MM5_R8
M5]\?LB_\%8=*^-7BG1_!/COPU)X?\4ZI.MK97VCJ]Q97,K<!63F2(D]\NO<E
M17H?Q1_X)3_ 3Q_I\RZ3H%UX)U)E/EWNB7;[5;MF&0LA'L #[BN,_8<_X)K3
M_LQ_&+Q#XQ\4:K8>))+2/[+X;GMD9"BR ^=/(C?<DV_NP 6&&<YY% 'NUWX=
MOG_:SL[(>,/%*:3)H,FOMI"ZJPM#.EY%$%\O'^KVL04S@YKYE_X7[\1W_9YU
M?PNOB[4/^$UO[.Z\667B)64W%OHD2SRSX;& 4GM_LP)'2XCK]%?L-O\ ;!=^
M1%]J$?E"?8-X3.=N[KC(!Q5,>&=(6+RQI=D(_(:UV"W3'DL<M'C'W2>2O0F@
M"71)WN=&L9I&W2201LS'N2H)J]354(H50%4#  Z"G4 %%%% !1110 5\(_\
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
MA7AWX"^$=3\)^"M6M]7^)=[&UNHLY!*FC@C!FE89 D /R1]<X+  <@'YV?\
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
M#\Z .*3X'?#B)U=/ 'A='4AE9=%M@01T(^2NV Q2;U_O#\Z4,#T(- "T444
M%%%>._M$_M7?#[]EZS\/W'CG4)[9=:O/LEO':0^=(J@9DG9 <^6F5W$9/S
M$T >PD9KP/\ :+_8A^%/[3-M--XGT%;+Q 4VQ^(=)Q!>H<8&Y@,2@>D@;VQ7
MK_@OQWX>^(WAVTU[PQK-EKNCW2[X;VPF66-AZ9'0CN#@CN*W=P]10!_//^V7
M^Q1XI_9"\56L=[<KKOA34W<:9KD,9C$A7DQ2ID[) #G&2&'(/! ^BO\ @CW^
MTGJOAOXIS?"+4[UY_#FOPS76F02OD6E[&ID8)GHLD:OD?WE4]2<_1'_!9OQS
MH&G?L^:#X6N;B&3Q#J6MPWEG:9!D2&&.0238ZA?G5,]RWL:_/W_@FCX?O-?_
M &T_AQ]C1B+*>XO9W'1(DMI=Q/L20O\ P(4 ?T$T4BC"@>U+0 4444 %%%%
M!1110 5\(_\ !97_ )-.TSD#_BJ;+K_UPN:^[JR/$WA'0_&FGK8>(=%T[7;%
M9!*+74[6.YB#@$!MK@C(!//7DT ?S(> _'_B3X8>);;Q#X4UF[T#6[976&^L
M9=DJ!U*L ?=20?K7JG_#<WQ__P"BL^)__ [_ .M7[Y?\,^?"[_HFWA#_ ,$-
MK_\ &Z/^&?/A=_T3;PA_X(;7_P"-T ?SV^*?VIOC%XVLVM-;^)OBK4+1QAK>
M35IA&P]"JL ?QJY\&/V2OBQ^T#JL,'A+PAJ%U:R,/,U:[B:WLH@>K-.X"GUP
M,L>P-?T)Z7\%_A_HDZSZ=X&\-:?,O(DM='MXV'XJ@-=A'$D2*B*%51@*!@#Z
M"@#Y;_8E_8/\-?LDZ'-?S31^(/'NH1".^UHQX2%.I@MP>5CSC+'YG(!.  !]
M3T44 %%%% 'S)_P4K_Y,D^)_;_1K7K_U^05^ WAOQ'JO@[Q#8:YHE]-IFK:?
M.MS:WEL^V2&13E64]B#7]0NN:#IGB?2I],UC3K35M-N !-9WT"S0R $$!D8$
M'D \CJ*X[_AGSX7?]$V\(?\ @AM?_C= 'X&_\-S?'_\ Z*SXG_\  [_ZU'_#
M<WQ__P"BL^)__ [_ .M7[Y?\,^?"[_HFWA#_ ,$-K_\ &Z/^&?/A=_T3;PA_
MX(;7_P"-T ?A_P#!G]M'XYZ[\8/ NFZA\4O$EU87FO6%O<02WN4DC>X164C'
M(()'XU^_R]#]:X>S^!'PUT^[@NK7X>>%+:Y@=98IH=$MD>-U.596"9!! ((K
MN: %HHHH ^(/^"GO[,OQ5_:+\#:(O@+48+[2]%>2ZNO"Q/E37LV"%E20G:[(
MI($;8^\Q!)(%?B^1XR^#7C%USK/@SQ/8/M8 RV5W <]/X6'2OZ?JY'X@?"#P
M1\5;,6OC#PGH_B6$#"C4[*.=D'^RS#*_@10!^#.C_P#!1C]HS1+,6L'Q.U.:
M,# :\M[>XD'_  -XRQ_$FO+/BE\=?B+\==0MY_''BS5?$\T1_<0WDQ,<1/7R
MXEPBD_[*BOW0O?\ @FW^SA?7/GO\,+&-R<E8+Z[C0_\  5E 'X5WWPX_9.^#
M_P );U+SPI\.]!TJ^CY2]%J)KA/]V63<P_ T ?G+_P $T?\ @GOXBG\:Z1\6
M?B1I,NC:1I;+=Z)I%]&4N+RXZQW$B'E(T^\H."S!3C:.?US P*,8I: "BBB@
M KYB_;3_ &&/"_[6_AV*X:5-!\<:?$4T[7%CW!EZ^3.HY>//3'*$DCJ0?IVB
M@#^;/XZ_LJ_$[]G+6)+/QKX8NK.TW;8=6MU,UA<#L4F4;>?[K88=P*7X>?M;
M?&7X4V267A;XBZ_IEC&,1V?VHSP(/18Y-RC\!7](=_I]KJEG+:WEO%=VLJ[9
M(9T#HX]"IR"/K7B7BG]AKX"^,[N2YU3X5^'3-(<L]G;&T+'U/DE* /Q9U/\
MX*'_ +1FK6S03_%+5XXV&";:*"!O^^DC!'YUPGA'6/BS\7?BAH^JZ1+XE\=>
M-+*[BO+27=-?SQR(X=&R2=H#*#G@5^YVD?\ !/7]G;0[A9K;X5:,[J<@7;S7
M*_\ ?,DC#]*]M\*^"?#W@;3A8>'-#TW0;$8Q;:9:1V\?_?* "@";PKJ%]J_A
MC2;[4]/?2=2N;2*:ZL)&#-;2L@+QD@D$JQ(R#VK4)P,T=!7P7_P4M_;H;X):
M!)\-? EYN^(6LPA;JZMSE])MG'!&.D\@/R#JH.[KMR >$_\ !4W]N\:_<:A\
M&/ &H9TV%C%XEU2V?BXD!YLT8?P*1^\(ZGY.@;/YA=:^J_@G_P $V/CC\<?)
MU#_A'QX4T:<A_P"U/$SM;;P>=RQ8,K>N=H!SUK[:^&7_  14\#Z3'#-XY\;:
MOXAN<9>VTF)+&#/IN;>[#W^6@#\>L$]J,9K^@_PI_P $W/V=?"4*+#\-[+49
M5ZS:K<SW;-]0[E?TKOK+]D?X*:=&$@^%'@U !CG1+=C^94T ?S98H((ZU_2#
MJG[&7P,UE"MU\)O")SWATF*(_F@!KR[QI_P2P_9W\7JY@\)77AR=A_KM&U*:
M/'T1RZ?^.T <M_P1Z_Y-#_[F&^_]!AK[AKR']E_]F_1_V6OAO+X+T+5+W5M-
M.HSW\<VH!!*OF!!L)0 '&SK@=:]>H **** /PW_X+!C/[7K8Q_R+]CW]Y:^K
MO^")G'P.\>_]C&O_ *2Q5]W^)/A-X(\8ZE_:&O\ @[P_KE_L$?VK4M+@N)=@
MZ+O=2<#)XSWK0\+>"/#O@>UFM?#F@Z7H%M,_FRPZ79QVR.^,;F"* 3@ 9/I0
M!MU^>/\ P5C_ &0/^%E^!_\ A;'A>RW^)_#EOMU6"!/FO=/7)+X'5X<D^Z%O
M[H%?H=3)H4N(GBE19(W!5D<9# \$$=Q0!_.G^QG^T]JG[*OQFT_Q-"9+CP_=
M8L];T^-N+BU+<LHZ>8A^=3Z@CHQK^AKPMXGTOQIX<TW7M$OH=2TC4;=+JTO+
M=MR31. 58'W!KE/^&?/A=_T3;PA_X(;7_P"-UV.B:%IOAG2[?3=(T^TTK3K<
M%8;.R@6&&($DD*B@ #))X'>@"_1110 4AZ&EI* /Y^/^"F(W?MO_ !.QC_7V
M??\ Z<;>OTR_X)$?\F>6'_8;O^G^^M?4NN?!KP#XGU6?4]9\#^&]6U*X(,UY
M?:1;S328  W.R$G  ')Z 5N^'/"VC>#]-&G:#I%AHE@':06FFVR6\08]3L0
M9/<XH U**** "BBB@ K\@/\ @MP,_%+X;=/^0-<]_P#IXK]?ZYOQ3\-?"/CF
MX@G\1^%M$\03P*4BDU33H;EHU)R0I=20,\X% '\VOPP^-WC[X+R:@_@?Q7J?
MA=]0"+=G39_+\X)NV;O7&YL?4UWG_#<WQ_\ ^BL^)_\ P._^M7[Y?\,^?"[_
M *)MX0_\$-K_ /&Z/^&?/A=_T3;PA_X(;7_XW0!^!O\ PW-\?_\ HK/B?_P.
M_P#K5]W?\$E?V@_B1\8_BGXWL/&_C35_$UG::+'/!!J-QYBQR&=5+ =C@X_&
MOT$_X9\^%W_1-O"'_@AM?_C=;?A;X9^$/ ]S-<^'/"NB:!<3H(Y9=+TZ&V>1
M0<A6**"1GG!H Z6BBB@ K\DO^"HG[(7QI\;_ !,OOB7IXD\<^%(X$@MM/TN)
MC<Z1 H)*&#)+J6+,9$R<L<A0!7ZVTF* /YB_ 'Q9\=_!S59;GPCXGUGPM>[L
M3#3[IX-Y'&)$!PWT8&O96_X*1?M(-8&T/Q-OMI&/,%E:B3'^_P"5G\:_<'XC
M?LQ_"GXMW#7'B[X?Z!K=X^2UY/9*MP?K*F'_ %KS2+_@FO\ LW177GCX8V9;
M.=C7]X4_[Y,V* /PAU'4_''QU\<K+>7&M>-_%FI.(TWF2\NYCV51R<#/ ' K
M]D_^":?[#%[^S5X?O?&?C6&-/'VN6X@%DK!_[,M,AC$6'!D=@I;' "JH/7/U
M;\./@?X ^$-NT/@OP=HOAH,,/)IUFD<KCT:3&YOQ)KN* "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH Y[QU_P )')X;NX/"ALX]<G'E6]SJ
M&6M[8G_ELZ#F0+U"#&XX&5!)'D?P3_8N\ ?!_6[GQ5=6\GC3XAW\S75_XO\
M$(6>\EG8Y9HQC;",] @R!@9.*]]HH 3 %+110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
J%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>5
<FILENAME>dsgx-20250131xex99d1002.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20250131xex99d1002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" "3!#H# 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#]/?%'BC3O
M!VC3:IJDWV>SB(#N1G&3@5PG_#2G@'(_XG2X(SG8:9^TT,_!W6.OWHNG^^*^
M'SD(&X#=\]^/_P!= 'W'_P -*> /^@TH_P" '\?RH_X:4\ =]:4>OR'\:^',
M8P1R#T/'.#CK^7YTG&!SQV/'% 'W)_PTIX _Z#2Y]-AZ^GY<T?\ #2G@#MK2
MGT^0_A7PWUP2,;N,<<@_Y-&,D@CW(QT]?UH ^Y/^&E/ '_0:7_O@_A1_PTIX
M _Z#2_\ ?!_&OALG W>G? P>W^%+C#8 .?3C/'_UL?6@#[C_ .&E/ '?6E'K
M\A_&C_AI3P!_T&ESZ;#U]/RYKX;'3KP/XACCO_C1Z<8SVXY!]/QS0!]R?\-*
M> .VM*?3Y#^%'_#2G@#_ *#2G_@!_#\Z^&\9)&/J../\F@GC=Z<Y(&#V/]*
M/N3_ (:4\ ?]!I<?[AH_X:4\ =]:4#O\AX]?RKX<QM;&#GTXSQ_]:D XZ\+_
M !#'&.?Y9H ^Y/\ AI3P#WUI0?38?\]*/^&E/ ';6E/_   U\-^G&"W;CG/I
M^M&,Y&,^O3C/K^- 'W)_PTIX [:TI]/D/X?G1_PTIX _Z#2_]\&OALGC=^1P
M,'L?Z4N,-C!]2.,_YQ0!]Q_\-*> .^M*/^ '\?RH_P"&E/  ZZTH_P" &OAL
M#CZ<;AC@C_ZV?K1Z<8)Z#CGZ?K0!]R?\-*> >VM*3Z;#_GI1_P -*> #TUI2
M.WR'GT_.OAO&<J!D?AQGU_'%!.1N]>^!SV/]* /N3_AI3P!_T&EQ_N&C_AI3
MP!_T&E_[X/X_E7PYC#8(/J1QGW_2D' Z_=XW#&,C_)^M 'W)_P -*> .^M*/
M7Y#^-'_#2G@'_H-+GTV'KZ?ES7PW@Y&!R>@X^HQ1C.0.1^'&>F?QQ0!]R?\
M#2G@#MK2GT^0_A1_PTIX _Z#2_\ ?!_"OALGC=Z]\#FEZ-@@^I&.1V/]: /N
M/_AI3P!_T&E_[X/XT?\ #2G@#OK2CU^0_C7PV.!S_#QNXQD?Y/UHP01@<GH.
M/J,4 ?<G_#2G@#_H-+GTV'KZ?ES1_P -*> .VM*?3Y#^%?#> <@=!].,]/Z4
M9R ?7V'- 'W)_P -*> .VM*1_N'\/SH_X:4\ ?\ 0:7'^X:^&_XL$$]R,<CL
M?ZT=%S_=[X&,B@#[D_X:4\ =]:4#O\AX]?RH_P"&E/ '?6E!]-A_STKX;P00
M /F/0<9R.1C]*, @@?='0\<9Z?TH ^Y/^&E/ ';6E/\ P T?\-*> .VMJ?3Y
M#^'YU\-]0">AX[<@T8Y((/J1CD=C_6@#[D_X:4\ ?]!I?^^#1_PTIX [ZTH_
MX ?Q_*OAO.!GT[X&*,$$  [CT'&>.G]/K0!]R?\ #2G@ ==:4?\  #2G]I/P
M  2=;7@9^X>G/^%?#0 / .0/3&0.OXTW:ISD8'3/X'- 'W.?VD_A^I.=<3@X
M^XW^%!_:4\ 8R-;4_P# #7POT )^4GGZ9]O\]J2087GKZ&@#[G_X:6^'_;6T
M/7^ ^V/YTH_:6^'_ /T'$'_ &_PKX2HH ^ZS^TS\/1D'7$!';8WO[?YS1_PT
MU\//^@\G_?#?X5\)9() PQQGKCZ4N3DC;].: /NS_AIKX>8S_;J'_@#?X4G_
M  TW\//^@ZG_ 'PW^%?"#CS"5/!QCCMD?RIC'.3\W(SW]\=J /O(?M-_#S_H
M.H/^ -_A2_\ #3/P\_Z#J8'4[&]?I]/SKX,;D-\Q&?[W'&.M1LV[<">O.">O
M^>!0!]Z_\-.?#SOKJ#_@!_PH_P"&G?AWS_Q/H_\ O@_X?3\Z^"@< '<=I]Z3
M=GMZ9/3'^<?RH ^]/^&G_AWC/]NIC_<;_"E_X:?^'60#KT8]3L/%? [#"CG)
M/!Z5$%W#'X<>N0!_/]* /OS_ (:@^'>#_P 3U/\ O@TG_#4/PZ_Z#J?]\&O@
M/.X9'?G^O_LP_P BF9!.?Z>QQ_6@#[_'[47PZ/37DQZ[#1_PU%\.CTUV/'^Z
M:^ ..>"HQD\<]S_+CZK]:C9%^;*J#@DC% 'Z!_\ #47P[_Z#L?Y&F_\ #4GP
MY_Z#T?7'0U^?Q1<GY1U&>!ZCG\ORS3-FXCIR!GCU'- 'Z"?\-2?#G_H/1]<=
M#UH_X:D^'.0/[=3)]5/O_A7Y\E=XP.<@_C_GBHY0#A@/O#/IQ_G H _0C_AJ
M?X<@X_MQ<^FPT?\ #5'PX_Z#J8]=I],U^>FQ< X![\GIZ4@12I.T<GIGK@<_
MTH _0S_AJCX<_P#0=3KC[IH_X:H^'.#_ ,3Q..VTU^>.%(R>"*"BX.WY@#D\
M?K0!^AH_:J^'!&?[=3'^X:7_ (:G^'.<?VZG_?)K\[RH)R0,T;0<\#GK[T ?
MH>?VJOAPH!.NH/\ @!I/^&K/AN.NO(/^ &OSP8\'. !UW4TDX_A!/'/<]J /
MT0_X:N^&W_0>3_ODTG_#5_PV_P"@\G_?!K\[<AFP %'^[SC'I_GI1DY]B?0<
MYH _1(_M7_#49_XGZ<#/W3]/\_44']J_X:C/_$_3C_9-?G7DLF[ /0!NG/\
M7M48!*@Y(4#TH _1@_M8?#49_P")\GIC8:3_ (:R^&G/_$_0X_V#7YSL21MZ
M=L@<CCT_$\4GWNAQD]N1W_\ K?G0!^C)_:Q^&@S_ ,3].,_P'M3/^&MOAG_T
M'E_[]M7YS*!QT.,$\=JC5C@9)R /SPH_^*_R10!^CO\ PUM\,_\ H/+_ -^V
MH_X:W^&?_0>7_OVU?G%O/J?SI,X(&.^!V],?GC_.* /T>_X:W^&?_0?7_OVU
M)_PUQ\,L_P#(?7T_U9K\X-W Y&,#Z>E,YSD9SGM]0,C]* /TB_X:X^&1_P"8
M^O\ WP:/^&N?AC_T,"?]\&OS;&!P/7 V]!_G &?K3&&XDCICTZ4 ?I*?VO/A
M@#@^(4SQ_ :3_AK[X7_]#"G_ 'P:_-G;@\@@YW<\=^_YX_"F@$ #!' [9/M0
M!^E'_#7WPN/_ #,2=,_</^>]!_:^^%X_YF%/^^#7YKR<?,!@XX[8Y!_K3, @
MX  !QD#^M 'Z5C]K_P"%Q)!\1(#V!C;G]*4_M??"WG'B-#SQ^[;G]*_,_) (
M!.*4@_Q-@]<'_/>@#]+1^V#\+?\ H8T'''[MN?TI3^V#\*Q_S,L??'[MN?TK
M\SL=>O/'6AAN7!Y'2@#],/\ AL'X5_\ 0R)GT\MO\*#^V%\*\9'B2,]/^6;?
MX5^9VT$G@\'.:80H*X&#T!/MV_+- 'Z9?\-B?"S_ *&./_OAO\*/^&Q/A9_T
M,<?_ 'PW^%?F7G&" ,  \@CZ=:82&5NF IR1V&/_ *] 'Z;_ /#8GPL_Z&./
M_OAO\*/^&Q/A9_T,<?\ WPW^%?F+M.W/0]<X./\ .,4%5Q]T'' Y//Y4 ?IS
M_P -C?"O_H9(_P#O@T?\-C?"K_H98O\ O@U^891<,"HP<=>WK^1X_P YJ+8G
M&55?J.E 'Z@G]L?X5 9_X22,_1&H_P"&R/A3_P!#+'U_YYM^?2OR^"H 3M &
M#SCD8&?Y _D:-H7($: \@T ?J O[9/PH8X_X2:,<@']VW'OTI!^V5\*#_P S
M+&#T(\MN/TK\O67.<!3U !'Y?S_SW1NOW1CG&!G_ #W_ #]Z /U#_P"&R_A3
MG'_"21Y]-C?X4G_#9OPG_P"AEC_[X;_"ORZ=!_"%_$>W^?SIN1MRJ@J>1D=?
M_KY!_*@#]1C^V=\)Q_S,L?\ WPW^% _;.^$Y./\ A)8^W\#?X5^7#8.3M7I^
M!_R::Z@ GY1G^+![\ _C_B: /U(_X;0^$^/^1EC_ ._;?X4#]L_X3G_F94]O
MW;<_I[U^6I'!.T+C/'.![4S(Q]X*1T/UZ'\.: /U+/[:GPD! /B>+GI\C?X4
MG_#:OPDQG_A)XN#@_(W^%?EG@#G'4<!?0_7KZ?A3@J@YYPO!^G'^- 'ZE_\
M#:?PDR1_PD\>>W[MN?TH/[:GPD[>*(B/^N;?X5^6. O!'(&2N<<Y[_A3& P,
M=/6@#]41^VI\),G/B>-<<',;=?RI/^&UOA%@8\4Q=,_ZMO\ "ORN(*D@C!'8
MTA.!DT ?JD?VUOA&#@^)X@?^N;?X4G_#:_PC_P"AHC_[]M_A7Y6!B!T+8SGL
M<TDC?*V1QZGI0!^J?_#;/PBQ_P C1%_WPW^%!_;9^$(_YFF+_OAO\/:ORH;^
M+ S[#MZ4-RS?*<<CIU_R3^E 'ZKG]MKX0@$_\)1'QZQ,,_I2?\-M_"')'_"4
MQ<''W&_P]J_*0#.['ZG_ #ZTP ' P <=_P 0,_C_ #H _5W_ (;<^$1_YF9/
M^_3?X4O_  VW\(<_\C1$.G6-O\*_*$G*Y!.2.#GV_P#UTTYSU '49&>.>WU(
MX[T ?J]_PV]\(?\ H9T_[]-_A2?\-P?!\?\ ,TQ_]^V_PK\H"!DY7;SGKTZ<
M?K^E1D ^H]_\_C0!^L?_  W!\'_^AIC_ ._;?X4']N'X/J.?%,?_ '[;_"OR
M<(^;(Z>GY]?R_4^E1R@*O&>X'Y?_ %J /UF'[</P?.,>*8^1G_5M_A[BC_AN
M+X/''_%4Q\\#]VW^%?DR5PY')))&/H3_ #.!325QQGM_4T ?K2?VX?@^/^9I
MC_[]M_A3/^&YO@Y_T-47_?MO\/>OR7959.ZD@@^P '^'ZTFTY).<\D]QV/\
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
MN8XR.GM_#Q4;<(2!D>I'^?\ )H 10"5SSD@$?7_$?Y'6D!) ).3CG/U_S_\
M6Z4$8SQG!QCU_P _TH/7J">Y[$X_D: $'5<\X.?3 SDU @P%SVQ_)/\  _E4
MQ&0/?KZ\@_\ UORJ(<^W^?\ Z_Z#VH ;CY<=\?TI#RQP<98\_4D9_0$?3Z4^
MF9P>N" ,GT&<Y_0?K0  \ \],]L#_/\ A3<$-R,'KE1SGD#\1_GN:7&!@X7
M/'84F/F(Z?\ UV'- $>>GTR ,$<?7L/7\.>M-<#)'8<XZ_7_ /7CTIX.?4\\
MX_S[4PC.!U&<<?Y]Z &2#AL@#GH!@'D<X_$^O6ACM)Q@?@!^M(WW6.#S\Q_'
M::5FPQZ@8]: $^XIQSWV@\=\^^,4P#C& =IX('Z_2GL/ER!Z#;U[]/T_2F+R
M"<D@'K_7% $1ZFGXVCG .#U'/3BF'J>]/^Z,9 .#VSVH 91110 P']YR #T'
MJ:8#AB2=H(W$XQ_GCK^%2 _,<9([^U,'S.2.#@]LXZ=: (WX?(&"3GC&?Z_I
M2.,E@5W YQZ]>W/';G/Y4YLDC R,9]CSFF'&.#R.>.<=,?RH 3H3DC.3T '<
M^A'J>.>U ZYZ]\#G\>_I_P#JHSP1G;@XQG_/J/RI#C'(QZ_E_P#KH ;MPN",
M@?*<>Q_^O_ACFHAD\9 S]!S4I')SC.,'\#C'Y<U$..W0@8/?G_/YT &[C=C(
MP3R<]1G'UX)_X"/7-&,,/4'M@?YZ"@<8QR1TS^0_]"/YGVH&!T/ QSTH :O5
M>W(Z?5?\_@/7F/H5XQQG@_[(_/V_#\7YV\GH.3_G\#_D4PCY@IZ@C_/YB@!'
M& ,=<\'/^??GM49Y3 /8G].,_@3QG\Q@4^3.P],_SZ?_ *J:>1P>.N?J!S^F
M* $#848( !//&?PQQ^%(<YVC@Y ^7/'_ -;.#]?7%*"<9.1ZT,.,$]&SS_GT
MY_&@"+C8<#&1T.!G\J%+%<J3ST.2#G(YZ^O^>E'(A.,@]#SGI0!M\S (()P<
M>V?Z"@!@V[N ,9)XY ]^1TH(!5N@^7&3SC_/K0.I'WL=AZ=J7/R/W(SUY]*
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
M -??GC+XLZ[H7[.EEXVMA:C6Y;.WG</$3%N?&["Y]_6OG+X4_&?Q#\8OVC?
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
MT/4?$6I0V.EV%SJ%Y*<);VD3R2$=\*HS@\_EV[??7[0D;1?L$^%D=&CD2+3
M588*D=B.U=%\"=)\/_LQ_LJ-\0+O3?M&J3V2:A=R; )I'D95BA#=ERR#TY)H
M ^!]3^"7Q"T.P>\U'P+XAL+:-=SS7&ES(B\9.25P /7V]LUQ#+@E>?3G@^G]
M?\]_L/P__P %)/&4/B!YM:T'2[O19''^B6H9)8EYR Y)#GCN!7R9XCU./6O$
M&J:A'&8HKNZEN%C.,J&<L!^1Q0!GGG)QCZ?Y_K^@!IDO0'H!W'K3_P"?J/\
M/U_,>],DZ#/3VH 0C#'UXS@?I^')]L#/LT_*H)&TYQGD ?Y.>.*'Y#9QNQ@X
M'4=?\_2ANK<<[N,^_P#G% #54\<!3D@$COCC/Z_7WIH^YP#CC@CMC@<?Y[XI
MR#A.V3^'?I3%_P!6?IG [=_ZC\J /TA_X)C_ /)(_$F.G]K_ /M):^QJ^.?^
M"9'_ "27Q)_V%S_Z+6OL:@#RS]IG_DCNL_[T7_H8KX>"D!< Y. >,Y_+MUK[
MA_::_P"2.ZQ_O1?^ABOAT8"C'7&.F#_GF@!5Y8;03@ 8ZXR<]O\ ZW6D7&,9
MX&.ASC^F:7@[/XN1[CN._P!!1NP03D],9_#I0 !L(3]W!QD8/=?IG_/UH(.5
M!!!/;!'KV^OM0HXQG)Z=>F0?TY'_ ->D'*IP #S@=.] "\,=N?EZ$>V!Z9^O
MX4<GYNIP"<CUYYR?7^?X4'[P)(QSR>??W^OYTF,A0.2!TQD#('.* % )]<]A
MSUQ]/ITI"03CJ/89(QZX/H?TQ0PW#C'IR,@>O^<4N<J.XX[YXY_4 B@ .=N6
M'/OP#[C-!8@[AP3R,GJ.OK[?H*1>K$$@GG(ZTO0X[ [BOKC^?4]:  #:V.X[
M=<>_M0IRX.0<=_3YA[\?I0O&,D9''TQ_G]:.6*\D<C!R<@]O\^U #0<@ <D]
M1G/4>Q_SFG @$G/3\<?YYH+;@/\ OK:>GK]._I1D\D\<=2.>GK_]>@!%/#$'
ML!G/^R?\]?PHSDX'*]QG_P"N?UIV3N#$G/(&<Y]_7_)I,_,#G)''7_'^E "$
MX0G.>H+8X/)^G^S2YX;T+'OUY^O]30N0.I!..5&#U'^!_P \T*3G/<@=">GX
M_P">* $!R>" !T8G&./Q]/K0I "\X!Q^/'U'O0QZD9.01[]#^-*25XSSWP,9
MZ]N/6@!,@1KGIC.,X_PH).&)8<$C=GKS^(/7M3AQD9/7G&>#_DTF2<XZMSGK
MUQ_7ZT )(0 PSC@X!_\ UTYCAQDXP<#GH<GMD?7\!0"00%SZ8YQ^E(K;%X/
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
MVX'S2T@7& #V_B/-?,?[8'Q/TCXE_$]&T&X2\T_3+7[)]LC/R3/N)8H?XEY
M!'7G&1@UY-K?C[Q/XFM3;:QXCU;5;<D$PWU]+,F0<CAF(X/-8F!M[<\YP?RH
M ^_?V+-6O)?@/J8>X=A9SSB#)SY8VYP/QKX0R^L^(,W<SR275U^]F8Y8EG^9
MB3WY)JWH_CKQ)X=LGL]*\0ZMI=FY)>WLKZ6&-B>"2JL :Q"23D\F@#[SLOV<
MOBE\-]T?P[^(Z2:4QS%9:ONV(OJ,*ZD^X45WGQ*U^?P;^SSK*_$S4-+O-6N+
M*6UQ:KL2ZF=2(T12,ELD<@#&,X&*_._2OB-XLT&!+;3?%&M:;;*,)#9ZC-$@
M_P" JP%96L^(=4\17:7&JZE>:G<*H437T[S2*,]-S$GG^E 'J/[(W_)??#.,
M?>D'!X)VG..:[/\ ;\('QAL.<G^S(L@8[NW'XXQ^-?.FEZQJ&A7ZWVFWUQI]
MY'G9<VDS12+U'#+@_K4NN^)=7\3W(NM:U6_U:X50@GOKEYG"Y/&YF)QC/&?P
MH ^Y/V TDF^$'B-() LK:BZHX/1C"F#W[G.?>L?4?@+^T==SW.SXD6QMY6;$
M;:K<@;3G@CR2.G%?'>A>/?$WABV:VT;Q'JVD6\C>8\6GW\L"LV,9(1L$]1GZ
M>U:A^,GC_!_XKCQ)_P"#>Y]_^FE 'TY_P3L#+<?$%"0Y5+,,00<G,_/KSD_I
M57X=_MAZ;\*='\6>&M9L-1O;^TU2];36MT1XE#2.55RSJ0 WH#P>E?*.A>,?
M$'A?[1_8NNZGHYN"IF.GWDL!EX)&[8PW8R>OJ?4UBS3R74KS3.TLLC%GD<DL
MS'DDGN<DF@#]"/AQJMSK?["WB/4;R1I[JZTO6YY9'/+,TEP2<GZUYA\ OV<=
M?USX<:5XR\#>.[KPYKMR9!<6[\PMM<A1\O(Z#.X&OF&T\>>)['0GT2T\1ZO;
M:,Z21G3X;Z5+?;)D,#&&V[6R21C^]^-70O%.L>&)7FT75[_1Y)<;GL+F2 L.
MV2A&>/6@#]/O@_IGQ4\,+J$GQ,\1Z%J.FQQYAEM05D0C&6=RD8"XSG(/UK\Z
M?V@?$&D>*_C/XKU70"CZ3<79\B2-<))A55G'J&8%@>X:L'7/B#XI\36AM-;\
M2ZSJ]ID;H+[4)IT."#]UF(['MUQ7.,,NH;!;@G^OZY_SB@#U?]F?XPQ_!CXH
MVFL7GF-HMTGV.^$8+;8V((D 'WBI ..N-V!7VU\</@5X?_:CT'1_$?ASQ#!!
MJ5O&5LM6M3YT4D9.2C;2""#GOE23QU%?F:_S8)^8GJ3WS_G-:6A^+M>\+*SZ
M+K>I:0SDEGT^[D@+<#D[&&3]?7MQ0!^E?[+'P7\5?!?2/$%MXKU6UU-[RY26
MWDM[F24*BK@YWJNWZ#/UKYX\,W$5U_P4/,D$BS1MJ=WAHV!SBTE!P1V!R#]#
MUYKYGU?XC^+?$%LUOJOBG6M3MV',-YJ,TR'MR&8@UCZ5J^H>'K^"^TJ^N=,O
MH2?*N;*9H94)&T[77!&02O!Y!YH _0KXP_M1:G\'OVC].T'47CE\%SV,#W$8
MB'F0.[.#*'QD@8&03C&:\^_;I^"-QK5M%\3O#\\FI:?)"BWT2.9!&AP$F0?W
M#P#CH2#T)(^.-=\1:KXHO/MVM:G>ZS>A!']HO[AYY=HSA=SDG .>.V:U+?XF
M>,K?2/[+B\7:ZFF^68!8KJ<P@\LC!0Q[MNWG!&,8XH _02UFT3]LW]G*'2;7
M6(;+7(XH/M48PSVMU'C[Z9SL8@X/<'U! Y[]FO\ 9#O/@9XIN?&/BW7-.E>T
MMY4ACM2WE1*<%I'=PN, 'C'<\FO@'1]:U'P_>+=Z3J-YIMVH*+<6<[Q.![,I
M!P>:T]<^(/BKQ3:_9M:\3ZSK%MD'RK_4)9E&,\[68_7I0!],3_M%:!K_ .V_
MI7BS[2D7AJR4Z-!?/\JM&4D0S-GHI>5B"?X<=*]6_:>_9#U;XY>.;#Q1X=UG
M3[=)K>."Y6\9L;%^Z\953NX/0X^M?G<1G(&1D;MHZ?YQ71Z5\3?&/AZS6RTO
MQ;KFG6B#"P6FHS11@>@56 H ^[/VM;S1_A1^RA8_#V74DNM5EM[&PM(R0))5
M@DC=Y2O9<1XSTRP%:7[*&O3^$_V19]9MHXY;BQ%Y<QI)DJS+R 0#G'%?G-JN
ML7^NWTE[J5[<:C>2<O<7<K2R/]68DFM*R^(7BG2-%;2++Q+K%GI+[@UA;W\L
M<#;NH,88*<]^.: /=_&G[?\ \1_%>AW.F6T&F>'S<)L:[TV&3SE!X^5G=@I]
MP,BOF>5C(6=F))SEVZ^Y)- 4C& PZ#.<\=?_ *U)DD*1S]3@@GVH ]'^"?P!
M\1_'S4-4L?#EUIMK+I\:RRG49GC&&+ ;=B-G&.^/K7Z7_M(?"[5_BY\%]4\)
M:+-9P:G=-;%)+V1DB CE1VR55CT4XX_*OR>\.^,=?\'RW$F@Z[J>B2RJ%D?3
MKR2W,F#P&*,,C/3)]:VC\;OB(!_R4#Q1UX_XG5UTQ_UT]@?QH ^@/V-/!5_\
M.?VM]2\-:I+!+J&FV-U#,]LY:,G$9^7(!(Y[BM_5OCDWP4_;F\52WD[+X;U6
M>"SU*,D[4!A3;-C.-R'![G:7QGM\BV?CCQ'8:]-K=KX@U6VUF8$3:E!?2I<N
M#C<&E#;CG SD\XK-U76M0\0:I/J.JW]SJ5_/CS;JZF:660^[L23PN.O8#L,
M'Z9?M[QPQ_LV7?V=4$']H6KKY9^4@N3D$=CFLC]G_7?#7[37[+K?#R]U'R=4
MM+%+"]B##SXS&P:&<*?O#<BG/3((/>OSWU3XA>*M;T=-(U'Q/K%_I2! EA<Z
MA-+;IMX3;&S%0!QC X[5CZ9J=[H]]#=Z==SV-Y&W[NXMI6CDC/LRD$=3SZ'Z
MT ?86A?\$T?$0\0,FM>*],AT&)AB>R1S<2(.OR, J''?<W:O/OV9_P!F?PY\
M;?'_ (UT+5-5U&TM-$?;;RV+Q;I1YKI\VY3GA>P'4UXSJOQ3\:Z_8-9ZGXPU
M_4K)UVM;W>J3RQL,=U9R".*S?#GC+Q!X.EFDT#7=3T.2<!97TV]EMC(!G 8Q
ML,@$YY]Z .__ &G/A'IGP2^+%WX6TF\N[ZRBMH9Q->E3)EU)(.U0.#[?Q>YK
MR:3J".O_ -:M'7/$.J^*-0:_UG4[W5[YU"M=:A<//*0!P"[DG S@#/'/XYLG
M3./S].] #2,\KSP-I Z?PY_(C\Q]::Y!!(QM'<GCO_4TY@2>>3R...O/]#_^
MJD8DC/)R<DYP<?\ Z\T -0;T ZACMSZY'_UO?KW(IH;<NXGJ>W;C/^>G^#D
M*@\$EN<C@\]3G_/YFF DJ23EACGOSUZ_C0!^D/\ P3'_ .22>),_]!?_ -I+
M7V-7QS_P3(P?A)XDQT_M<_\ HM:^QJ /+/VFO^2.ZSP3\T70?[8KX>W JO.3
MTY(YK[@_:: /P=UC(S\T7_H8KX?!)12#P<9P2 !W]N] !G(4YR-PY/U:C!X'
M()QU'3B@L203G*[3DDDGN?U/8_GUH&%&>!VXQ_3KT]* %4DL.,<C@@CJ0?\
M/TI@8>6O(SC\NM*0<!>^.F,^W'XD]#_*G YSAFQDC@__ %_I0  9D48X/Z_,
M/\]Z:K?(#W)Y/OD_X4H)+YQSW&??/.?8=\TB\*HW<C'U'?KGWZ4 *,9VYQT'
MIC\Z 2.O!/.2#C^$T E0-O0$'J1Z],T@&%(!]^F<\<<9QW_2@ Q@$D$ #.#U
M'%*W#=.<G@G&>??MG'ZT<;C@*#DC(X_E_P#7H Y. 02<@\@ ]!T].>W^%  1
MA1U/?)'U/-&<@\8(Y'KT_P#K4@P0/X3ZK@$<4'&&!Z9/'3T]OZ4 !&U0,]>.
M3UZ _P!:5AD8/ /&>XR:"2&(R0_<\C/OGZCOW[4G(#8 ##H0,'M0 .<X/1CZ
M\#GGK]&I2>0.?7!Z^U&0K94X&#]TXZ-G_/7_  !P=H./;I_^O]:  \$'CKP0
M>N!_]<4C##8Y!Z$8P3V_I0OW5. .0"0,<<@_I]/ZT*1T[$#@'';\* %/+8)Z
M<'GD>OZ ^M');D ,<G Z'M_3WI#DJP!Z \>G'IT]?SH)Z'  (R<# Z#^O_ZJ
M % W/@9Z].AZ_P"%"G<<Y!/KG\>?Q(I!T*CGG@9R,Y]._P#^N@M\N00P'3//
M?T(^GIP* %4<XP>@! '/^>:1>Y!Z<\=N#_4BEP << =L]._^>_UI%(91GD#'
M?..,'CG' //L.E "@9!Q@@\=>#V%&>&.">IQC/Y_E29+;22&!]>>WOT[]Z&&
M=R\9)P,]N1^7?TH 48 )W?*#C.>,=!_+TH!P 3CUZ^G/%#G.YN0>2#GGG)'K
MC_Z_6AAD=2#ZC&?\?7O0 A&T!#P>GS<9Y;IFC) ;/4<D<^G_ ->E!PP/W3D9
MQQS[X]P>_?M0IQD=.1CMV'Y?E^- !@@#&21T(&?I^.5H[ \<#/Z"D&%;(YR.
MG S@@\]NGUI<87'RGZ]#V[4 *N3(!W!&?7KD^GU_"FC[I/4;1^/%+G#9;(48
M)!Z#GTQZ9[&D (&UAST/&!V[4 +]T<9 ]1TXZ9I/NG;Q\I[GTW<4N">V6[,5
MSW'US0,D+QC@_*.V3Z?B.I[4 !X.<D<[3GC/&*0MT((#$\ D>HH')W =NP'_
M -;'6ESDDYX)ZYP,=!Z>_''Y4 )@ @@\'U],=/2D)R20W<'.<@<]?\^M.R<Y
M/4^O?@>W2FR');))/(Y.?RXXH 3 P 1C@<$X)X'_ .NDDSL[]N<?_6IPX)Z9
M.<XQCKZ="/2F./D/ P"!VR/;IS0 QA@X*[2.#FFC/.<>U.;HO&..OKS3%QS@
MYYYYH 0Y^;&1D]3VX[4BD9S@  <\]*&!)/ R>F>0,<YQ]?Z4N1N)/IU!XQ0
MQ2!DEOE!R3D<<=3[4Q^'YXY/7IU%/Y+DY&3D#*YQQ_*F9RP(SD<^N/4=<]?P
MH /O#'WC@9]AG\:B;[PSP<9P>.<X_GG\ZD/)(.#[-\WKZXII'[TC'!!R,=?F
M^G^?U( C$$=<?CTIN!C^Z,8^G(_IC\*<21R22<8!Y!_/_/X4PXP>AX[=^?YY
MYS^7K0 LOWN?EYY&<=:A((4\'.TX'OZ?R'XBI9NF.H)Z#@ ^M1'CL".A!'7@
MG^OZ>F: &GJ<<CL?7K_];\Z9U..Y/ ]\X_K3^G_U_P#/^<GUX8"0.,Y ['OD
M=S]/YT  .2I[%B1C\,?U_+VIJC)'X=*?T/3 X[>FX<_]\_EGU.8R.#G/3G(&
M?_UT ,';GK@X'''_ .O)]OTI<=_Q&>*&&6;T.1C.<Y_K@#_'.*#DY/KSD?3G
M_/7K0 T@A^1@CO[#'X]OYU%)C"\X4\8/T'4BI&(#97C!R .!Q],=_KUJ.7'&
M&QCC..PZ'OZ>O?TH 8WW 2 <COWI$^YU '.?4#BER2 00&ZA@<'-(A^7&1UY
M'4_E^)H 1,XXS_0'M002O&XGZ^G)I%&1T[\D=:5^03\N<YX[Y_3_ /70 RBB
MB@!A^^<8) Z9_G0 5XSM&< #FAN21\I(P0#VIH4<@ >A"]<?6@!BG<YQ@ ]
M?7' QUZ<_C0PPV,$=.!DC^7I3D.9#USSWX]N_H!^=,(ZC 'T /?Z4 -8[E )
M&"%SSVS_ (GU[4C9*[NG'_U_IWIQ8B,<D<9ZG^Z>?O?YQ^--?DD^^2>,]?8?
MYQ0 PX)Z\9[\=N?R[TN?7C']/\_TH RVTX ;C'&,=,>G'I[].](#E02<':#G
MD^W\_P"?K0 T9&#@[@0,8YR!4*\8QSTQ[\+_ (+_ -]>U2C&<\#)! QQZ]>W
M3]*B7@#VQU^B_P#Q/\_3D ,<8SQCK^%-R<YQT).!S@@D_P" ^OZNQQCV_I33
MDMV!)!&><-G.?PR/\G! !1C:.H[?3CG^OXTQCCDY!&3SU/!Y%.X8' X/;';L
M/RXI"3DD?H<#U_H,GL!0 P@C*]^F!QVR::1\YR3@]QT^M./'3&.<'^1QV^GK
M^C2.3QMR>>,_Y_\ KT 1G^(8.1U [=\?SHSCYCTSDGCV]Z"<ITXQP.<#@GW]
M?_U48RZ]>G4'GM_GO0 '@9X Z@D\9'']<U&../N]\=Q3R<@N>O\ ^OC.<\_G
M3%^56P?J>Q/IUYH BI^<IC(''>F4\'*X))XQTSB@!E%%% #1PQ Z=^.]1]2.
MN#T.#G!_ETJ3'S]3T_"HR 3GG@'(R=V#^O4=* &OELY!Y/ISVXIN"Z?+SWX/
M3/;C\\TYAN;MSZ<]_>F_?Q[8YZD9QZC\?P% #21EL\>W3CMUQVH) Y)!5>3C
MT_"D'&,97(Z+QV'L/_U"E)RN23QZ$X'X\_YS0 P?= /4<'\"?_K?A40!.,=3
MZ?EFI#TP>PQC'3CD8_D.G?DU&02, #.#^?:@ R.HXXRH]N/UZ?F?448QCIMS
MG\/_ -7\J7DGY<CN,<<]B!]!_+U--XZ   ]B.W;] * &\#KP._MZ_P#LWY4P
M@AAV/=??@']01^%//7@?@>?S_P ]SZTQOO=6^O\ GJ>A^N?6@!),[6P"0.?R
M_P _SIAX&/1N>?7D?S'\^:=+T/\ (GKV_*FMRK=_O=>I]3^F/RXY- "#(7D8
M I'XZX'..3WQ_D?CSCBE'!![C_'Z?Y]*M:1I=QK6K6.FV4;3W=W,D$,:?>=B
MP55&/5CGC\R>@![[\%OV,=9^,7P\'BF+78-)CFDE2WM9K9I&F"_Q;MP !;(Z
M=J\(MO#&JW7B%M#L]/NK_54E>(6EK"TDKE#\VU%!)P%8\ \ ^E?J;IO@^^^'
M\'P[T#1-8TBQTG0H_+U*WN)S%)=!DP2B!<$ER6YQR:\%N/AX/ O_  4&\.74
M$82QUP7.HQ88GYC9W DZG^^#P.Q'2@#XO@\">);C6I]$B\.ZI+K-NF^;3EL9
M3<1KC.6CV[E&"#TZ$5):^!/$MSI=UJL/A[59=,M683WR64C0Q%3A@S@$ COD
M\8K]&?AV--^)OQ6U#QW9+%;ZSHDFH^&]7MU/,BQR/]GF_%1@\=21G"UP?P>\
M<6'@#X :WJ&L6T=WH=QXIN;'4H91E3;32M&Y/L V3Z@$=Z /A=/!VO/I%KJ@
MT347TNYE\JWO!:OY$SY(V))C:S94C .<@CM2W?@KQ%::[#H=QH6J0ZU+@Q:;
M+92+<N",C$9&X]#V[5]O?&#P'%\*?V>O WA[[4MU967B\2VMT6!$EO)//+$Q
M( &=CJ#QC(/UK.^*9Q_P4)\'\D?N;;I_UREH ^*W\*ZU'KPT-M'OUUHN(QII
MM7%R6(R%\O&[/MBFZQX7UKP_J::;JFDWVF:B^TK:7EL\4K!C@81@#R>G%?<_
M@CPBNK?MF?$WQI+!]HL?"L+R)M.<W3Q;%7'<A5EX[';7.?M,Z5?_ !!\)_"S
MXEW^F-I6JB\BL-3LG49B8RC;GN>1Q[-0!\:Z]X:U;PK=):ZWI5WHURT8E6&_
M@>%RF?O!7 ./>KG@?PK)XW\8Z/H"3BSDU*Z2W6=DWK&2< D#!-?0O_!04_\
M%W]%ZX_L6'Z?>?\ S^->-_ /(^-'@H\AO[4A!Y)'+#- 'O\ ??\ !/F'3]9@
MT>X^*NA6VKW"[H-/FMPD\HSP5C,VXC@]!7@?Q'^ WBWX=_$FX\%MIMQK6J+$
M+BW&E1/.US 0V)%506'W>1V*GM@G])/%-G\,M>_:#T6QU_1Q<>.;6Q6]TR\N
M)'\HJK'A4#[2ZGYN5SZ'CCP3P%K/BS6/V_ISXRM(K#4+>SN+>UMX#NB6T6*0
MQ%&ZL"&+$G'+'A>@ /C;5?A5XUT*T:[U'PAKVGVJ$*9[G3)XT!/ !9D Y.!4
MLGP;\?V\#SR>!_$D=NB[S(^DW 55 ))SLP/KTKJO'<'A=/B=J+:9J^M76J#Q
M"Y>"\TV&* ?Z2V[#BX=CSTRHSWQTK[$^*&I6G@?]K7PGXSUCQ/IVA:#I_AC;
M=P3WRK/<J1<@1I #N?+%#]W&8\CY@* /SPT/P_JOBC4%L=&TR\U>]92XMM/M
MWFD(!R2$4$X%+KWA?6?"EXMGKFDWVC73#?Y&H6SP.4.1OVN <9SSTX^IK[(U
MKQ-9W/[*_P 3_&7@ZU&G7.N^)I8[F2!2LJ6A9< D8*Y!+'T+D5S%U;V_B;_@
MGLM[KO\ I-]I&K&+1[B=B9$!FV-&C$YV[&<;>1\J\?*, 'SS)\%_B#!;M--X
M#\311(NYW?1[@!1C)))3@ 9Y^M9^A?#;Q?XKLOMNB^%=;UBS+%?M%AITT\98
M=1N52,U^FGBGP:=5_:MT/Q3%KEM'-HGAUII=&CW&\N48R#*#:%923@_-GVY%
M?'WP.\1CQ5^W-IFK16$FE1WFL7<HLG&UH<P2C##U]: /"/$7P]\4^$+6.YUW
MPUK&BVTK^7'-J-A+;H[8)V@NH!.!G'^!KG9">..0<]*]._:78M^T#\0022!K
M=U@>GS_Y_3WKS)^JYSCZT ,8<E1P<8&>G3&<_0_E2-ST&,XP,?D*#\H''(VG
MKCH!_4$?X=T9<;N0><9],?3% "*#LZ'C@#!R>_YY/\J:.1QSDXX.<&G+G P
MOS$#COC_ ",=_?I35Y0<<<8!';' _P _7% 'Z0?\$R/^22>).G_(7/3_ *YK
M7V-7QS_P3'_Y)'XDQT_M?_VDM?8U 'EG[3/_ "1W6?\ >B_]#%?#P^9!U/&
M.N..E?<'[30_XL[K' .'B//_ %T%?#V,@<!CC\!W[9]/:@!>F#R22#A>YR<_
MRI&X5B>#C'!I3U'(/.0,!<\G\.Y]>GI2#A0%],]NF/PS0 [I)G!].G?=3<?+
MZ\#V[?I2C Z YY]QQG.2!Z']>M)G!QUQT_R#0 -CYAQSD]>O'_Z_SI6/S<GD
M9_\ K\?C^E&"$QG'89/'0#OC'6C=E<@E5YZ'...G4>__ ->@!&)V,W.>H)_#
MI2MQE>6QSM^AQ_(4UN$D_P ^G^>I^E.D(Y!)&.WXGW_IW/%  3EL')([#Z^E
M"_*V>H/.1SG!&?Y9H;G&1CYA@<^O^>U)@DG&">,Y ....I]>O^10 H4@ =&
MYI.=K'[N0>/P/^%&1M7C@] >?7KT_E_A2@$E!VS@X! .>.,#Z]NW>@ )ZMVY
MY'&?\]:,<Y)&,@_3WI%^;=W+8YP3R1[?X_A2J"6SR3GJ.O8^A^E !U&WIP,C
MIW/\B:3)903D'&>*7.W:?3GWZ+[C_/K2=!@<E>F._P"1H 7'S<#/) R.N?3\
M0?SH8_+D'.WU^E!7#$#(/?H/8<X]^<XS0<-G'"\@'_)'\OPH 7'S#MSCGI_G
MK2*!@<$#'<<X_P#U$48R5ZC.%X/8D],?X=Z13WSQP3T YY]#Q[4 +DDJ1R20
M,'ZTG&.IQCI_GOC;2YXW'IP>O7'U/UI""&QW(_D!]<C_  [4 +TSD8[^_2AC
M\WJ&R3ZXQ_@: 0O.3M!XY]#].3^/XTC< 9'//&>.G7J?:@ SSUR?8]_\Y_.E
MYR O'S 8!]SZ4.1EMWOD9)_J/?WHSVSDY&1GK]>?84 )W7W!..W3/]31D*">
M/8MW^OZT*<[<= /RX'^>WUI5W \<\]>>3SQT_P : $^[D_W20/J,"E'RD#(!
MSSSBDP"">V  W/(QZ'W'K^=*P)7G/'J/KV/2@  )8C.T\9[>WZ&D!#KVP1P!
MZ4H;DMQE?0_4_3MVI#T/4 =\Y.1^/I0 9 3./E'Y'KQ^M+WP#DC(X[X__4*,
MA>A*YYW#&>Q]O3_/6@ YY!X.,=A[<CCL* $''S<#'!].HHQ@  <X!_0G^HI0
M2!N!Y/H<?J?I[TAP!G&%ZC/3USU/IC\.M "Y .,Y(]><XI/NKST'?UZ_XBES
MDXW$GD]!S^&:0#<,'!8_*,$\X'3T[ ]>_>@!<;<XYY()Z9/]*8W4X]S^&*?G
M.<X],\CW^GZTG.Y<Y4Y#'D\>N./;WZ4 )R<?@2.>_P#3I37'R9 SC.?44JC&
M..H' &>?USZTDGW#SG& ,D$F@"(XP,9]Z09YR,4YCPOS9XZ>G-- Z\YH 8W#
M%N>.<XSQZ?I0H/0$=,<= ?I0<;CCH2,XX(/O^E .0=V3D<C;Q0 @SO)QS]/U
M_2H^23@GGGIV.?\ ZU/49?&>>Q';IQ[=JC.T@' Y[ YZX.1D>O\ G- "@8W9
M& <?3K4?1@3U*@\\9YS_ /6I_0DCY3C(P.A],'_ZU,[C;\H/0C.#U Z>WIZ#
MGU $(VQG ''<4C#&[T&?_P!7YD4_'?#;CTXY_GG]:C!P <=,''T./Y\_X=:
M"7[N,YP<$_Y_&HP0,''''?''/_U_PSZ5)*" /48[]/T'H:B. #V&.2.W(S^G
M3_=H 8.@]?\ ]7_U_P#(IN">.<\=O<#^II_UX/<#M_GG\A3/NGT( ) QCZ?Y
M]#0 O5N<')'?L1T_4_7(]ZCSQDGT)QU_R?ZT_P"[P#C'&<\\#G\OE_+MS30<
M'CIV P/\_P"?P &$X)Q@D=,'C.>G\P/QHQZ<]@?Y?X4==O.> .,\_3ZC'U'&
M?4ZXYSD?GGO^/_Z^: &M][(SZ]./\\?D#4<V=R_>Y.<=^W^%/8# ! .>@7CU
M]NO;OVZ5',, 9[],< ^_0>OY$4 ,)^0$CKU&:1#A,\@ ]?RZ>_%*>$Z<'J ?
MY>M-4XC)SCKC!Y[?TH %R ..3TQUI6Z<D@'ID>G2D4 9^;T&5/\ 3O0<;3V'
M;H3G^@YH 91110 PG+<]NQ].Y_6D'&TY&!W/ /TIQR&Y/N !VI%!!' ],D\X
MH C4?, 0>F,>Q ].G(_G2'[Q&#CN,>_:EC!)''&,\G&>OMU_S]6GAAC@Y'R\
M''T_S^5 #3G;C/7I[\$#^E-D.5;FI"/E8= 1SG./Q./;UYS]*8Q)C.,\9_SZ
M?S[T -<\.>XS^? _K01@G'0'^7%)WXSD$X]>!D?Y_GUHX ]!@<#Z9X_'I_,]
M* &9 !.2 O&>XZU'T'3GT]./_K ?@/>IEZC!/488<Y/&?_K^U0)T&/;^2?\
MUOR/KP &!T[4PG@DX&0>#TSWY^C?YQ3OX?P_I2$9.#W;'!]<@X_,X_\ K&@
M_B^AR:8>3Z]L>N>?Z?K3BVX DC'7..O_ .LDTAR3@Y';/;H>?Z?GG'6@!A^9
MCSG).3ZY-,)SDD=\Y(R/\]:>3U)X'H<Y'/3)_G[&F,,[^.".>W^?H3Z4 -9<
M$C./X3G\1_*D!PRD\<=_PI2>I'R\^V.I]N>".GK^%(?E7 RN!T/;Z\<_E^-
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
MS@CTY/./\@BEP=HP.AZCD _R_6@!,G.>F<D^W'?ZXS^%*3@'.3@[?Y"D.,\
M 8/?!Z''^>>WTH/\7LY_#G]/TH "#G.,%@1]<Y_K2YSN;GYCQZ]S_6AE) ('
MS$8''J".WK_G-(2& /!R<9P!Z_E^8H &SY;$YY'^%.?J1D@<]/JW^?SIK_<;
MN0/3Z4KXWYXR<_7&6Z=C^9H ,'I@*>I]C0IX! YX([XY'X^E!4\\9/0X&!GW
M.<49![KSG&3U/&._'^?I0 =$  R,=,^W_P!>A<+Z$#&<=<8_P!_.@#D@# )S
MC![_ %_H.U&,K@?+G. 0<>_'/ YH !@=3P<#)XR,$4C<[LC/R]Z,@C< !G\!
MG'Z<CU_"ER%;+'!R"<__ %C_ )S0 -R2 > 22 ?K_2E/S.,_-U'/?D4AXP3S
M@8QU&,]L#'4>_6@<. 3D^A.3V_SW^E  AYW'H.Y[<C_Z](H..<CC'/\ 6D'W
M >_W1SZD^^!^/^-.*Y.X D>P_P ..]  /O*#_>!Z?4TB_=)Y'RCZ]*<.&!'.
M2. #SW Z>WZTS V >HQR1CI^O7Z]J '8XR?7/^?6D(QP?X0>!] /Z9I>,C)Z
MG&>/7W/-(/XAR> <?\!/^>GXT *._P!>W]:0$@*,CG@#U./R]/RI<9SU(!Y
M7)_S^5(&XW9Z<GOZ>GJ2.OI0 J\$@$XXX]*%)*@;B"3C.>0<_P#UJ,;0 2 3
MQSP#V[?SI&XR>V#^'!^@H 4_,%&#T&/Z?S%"X+8'.>"<_A_6C&"Q&,%C@@\'
MH1C_ /51S@A<$CH /?\ SV% "+CKCZ #ZG I5&W;V)[T+C?@8.?3Z]/TST[]
M*0#!7(V]#SQ_A0 JG#9YR,'_ ,=- . 3GGH>?PI.Y!(&0.IQ_"?\_P!:#QCM
MTY)/'^1_*@!0"$/!YSP/7&./S_2@84@CICCCMP?ZT'D@'H>-V<>_7&/7_'%)
MT!Z8^\1SZ9Z8^M "J<-GIR,\]?\ .*1<CH3T[?[O?_/K2C.X!>">A//?_P"O
MVS2<,VT+^!'/7@X/L?6@!3DAO7H,T<$9'<]2,]R?Z49P!V[9!!'_ -?\Z.%^
M4XR.2IX/K_4_X4 (#D$@9_PI" #@D8X![#KQ^E.(P,$@]OFSVZ]1[4UNI4]
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
M,YH_L73U()LH%R02"@&!W]Z /G]E;.=P#$<DMUZTUQW+!CTZU]!#0K!@";&
M+@#)B'MZ_7U]*0:)IQ!/V&W'U1?YT ?/=-*_* .W3)KZ%&AZ<5#?8K<@$9Q&
M.P''\_R[THT'3MO-E!@#&=@Q^>/ZT ?.[8*YR3GC))'!--SSGY0>IP2/2OHG
M^Q-.P&^QP#G@F,8Z^GX'UI3H6GKM L802<8:,9ZGVH ^=6!*L..<CJ3UIC$$
M9!'&<8R3R<_X5]&_V%IO ^QVY]>!_P#6I!H.G X-C#DXR-@R/7C\#0!\XY '
M!.".BD\5&&.2.0.P&?<?U_E^'TE_8&G?-FR@X_V!Q2#0=-P,V<"DXZJ/\]P:
M /F[<0."P]ES_GTIN[K\N2>._<?_ *_TKZ3&@:;@?Z% ">^P9/Z4O_"/Z>>/
ML,.3G:/+P3QT_E^= 'S1@D\*3U[G_/;_ #UIF#U"GUSD]O\ (KZ9_L+3<,?L
M4''?:.>*#H&G#K90YZX"\_R^M 'S-NVMC81CMD\>WZ+^7L:;(N0#M;/KST-?
M39\/::"%^Q0 Y.0$_7IZ@TC>'],49-A"/8H!B@#YB(+=OKD'_#\<>O6E9<#&
MTCTX/05].MX?TW)!LH-W/&P'&,^W^>:#X?TOD?8;?&<?=6@#Y@P<$;3@]<[O
M\]S^M1A6(&%8< =\]!_A7U"?#^FMP+"$GH,1@\\8QCW%*?#FE[S_ ,2^ #G&
M8_Y<=,8]* /H'_@F4,?"7Q)\NW_B;GC_ +9K7V)7SW^QA8V]AX"UB.VA2!#J
M!)$8 !.P<U]"4 ?/G[>0S^S+XFX)_>6_3_KJM?DTI)C49)XQ@G'%?KM^VEX:
MU;Q=^SUXATS1-.GU7499("EK;)OD8"52<#O@5^9T?[.?Q29,+X!U[;GK]EQV
M]": // <X&1C!S@=L@_USTX^N:?RV=QYP>IQS7H2_LY?%'Y1_P (#K@/'2U.
M!G_.?\BGC]G/XHC!/@'7![&V/Y4 >=GOV' X^G'\\8^O3L]22W7/7G_/^>:]
M"/[.GQ/'7P%KO4DC[*?0_P \#\J<G[.GQ0W<^ M=SSUMJ //54Y&TX8\ GL<
MC'ZE?RI5(."O"\8SV'&/T*_E7HG_  SM\3T)/_"!ZYE>?^/4_7^@_*@?LZ_$
M]2 / 6N#&,?Z*3]/Y"@#S\$[@<<Y! (S_GM^=.7[R8] !QSC)Q_7\,_0>@C]
MG7XGY_Y$+7 .?^7<TH_9W^*&T_\ %!ZX#_U['TY_7)_#WH \^4 8P,=/\_Y_
MG2@LJG!Q@=!QR1@=,?7_ "*]"_X9X^*'_0B:WZ_\>QZ_G1_PSM\3Q_S(>MG
M_P"?4_B.OUH X CYB<GJ<'O_ )_&G1#Y.F-PQD''H.WZ5WX_9Y^)_0^!-<'N
M+7K^O^<4Y/V?/B<G \":X>G/V7KZT < I)8-W(X)XSQ^./I[4]%SD=%&1P<?
MRKO5_9[^)J 8\!:X3@ XMB,_K3A^S[\31M)\!:X?7_1<8_6@#@2-Q/&[L"."
M!WY_"D ^<G!!S^./\/I7H _9^^)A'/@/7!WP+7H?SI!^S[\3 1_Q0>N^I/V7
MK^M '!C[S=?I_7_/I3AR?2N\'[/_ ,3 2?\ A ]=Y_Z=?_KT\?L^_$LC/_""
MZV/8VIH X3<Q(P6)SP0W\7K^E.'(!Z#G&[!P.W7\:[P_L_\ Q*)(_P"$&USG
M_IV./\]:<OP ^)(_YD77%YS@6Q]N* .!#%>1\O< =OR_R*4 +O'3^?0CG_\
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
MIOQYG)\(ZICG(\D_Y[?G3S\&_'8Z^$]4R,?\L#U_S_.@#D,D#*CD#C'KV_4
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
MVQUI,D=>/J3Z8]:ZW_A4WC/)/_"+ZER?^>/N?Z<4G_"I?&>,?\(OJ73'^IH
MY,@YP.&(Q_3KGW/Y4@"[3@?*W(&.V>GZ>]=:?A-XT((_X1C4\]CY./\ /-*?
MA/XS//\ PB^I8.3_ *GG_/2@#Z+_ &/"3X&U?+%O].ZDY_@%>^5XK^RQX;U7
MPSX.U.#5M/GTZ:2]+I'<+M)7:.<5[50 A )!(Y'2EHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
BHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>6
<FILENAME>dsgx-20250131xex99d1029.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20250131xex99d1029.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1"  ^ )H# 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#]4CTKYF^%
MO[-7PP^(FC:UKWB3P3I.L:Q<^(M9$U[=1,TDFW4)U7)SV4 ?0"OID]*\R_9X
M_P"1$U'_ +&/7/\ TYW%=]"K4HT9RIR:=X[.W<YJD(SJ14U?1_H8O_#&?P4_
MZ)OH7_?AO_BJ/^&,_@I_T3?0O^_#?_%5[114_7L5_P _9?\ @3_S']7H_P B
M^Y'BQ_8T^"@!/_"M]"_[\-_\57BLG@3P_H_PS^*GA*RTBVMO#:_$/3K0:8BD
M0^4QT_<F,YP=S9Y[FOM)ONGZ5\EZM_R!OBO_ -E+TO\ GIU>G@L37JMJI-NS
MCNV_M(Y,12IP2Y8I;]/)GI@_8T^"A_YIOH7_ 'X;_P"*I?\ AC/X*?\ 1-]"
M_P"_#?\ Q5>SCI2UYGU[%?\ /V7_ ($_\SK^KT?Y%]R/%_\ AC/X*?\ 1-]"
M_P"_#?\ Q5<#\=_V5_A-X0^$GB;6='\!Z/I^IV5FTUO=0Q,'B<=&!W=17U-7
ME_[3?_)"/&?_ &#Y/Z5U87&XF5>"=65KKJ^YC6P]%4Y-06SZ(X35/@YX*^+7
MQVU8>,/#=AX@^Q^&M,-O]M0MY6Z6YW8P1UP/RKH_^&,_@I_T3?0O^_#?_%5?
M\'?\EX\1_P#8LZ5_Z-N:]9J:V*Q%-QC"HTK+1-]D.G1I33<HIN[Z>9XO_P ,
M9_!3_HF^A?\ ?AO_ (JC_AC/X*?]$WT+_OPW_P 57M%%<_U[%?\ /V7_ ($_
M\S7ZO1_D7W(^:8/A-X0^$WQ:U"U\(>'K+P_!=^$;Z2=+)"HE99(@I.2>F3^=
M5O@C^R=\(?$GPA\':IJ7P_T6[U"\TJVGGN)86+2.T8+,3NZD\UVWCW_DLTO_
M &)VH?\ HV*ND_9U_P"2%> O^P+:?^BQ7HU<37CAU.,VF^6[N[OXCDA2INJX
MN*LK]/0YS_AC/X*?]$WT+_OPW_Q5'_#&?P4_Z)OH7_?AO_BJ]HHKSOKV*_Y^
MR_\  G_F=?U>C_(ON1XG-^QK\%$B<CX;Z%D _P#+!O\ XJOR"\=QKI?CCQ%9
M6@^SVEOJ-Q###&3MC196"J/8  5^\ES_ *B3_=/\J_!WXE?\E&\5?]A6[_\
M1S5]QPO7JUIU?:S<K);MON?.9S3A3C#DBEOL?O,>E>9?L\?\B)J/_8QZY_Z<
M[BO33TK\_;'_ (*%:#\"-6\3^"KWPCJ6J76G>(M6+W4%U&B/YE[-(,*PR,!P
M/PKY#!X2OC:<Z>'CS.Z?RU[GO5Z]/#RC.J[+7]#] Z*X[X>?$:'QK\+](\:W
MUF?#MI?V(U%H;V93]GA(+!G?@#Y,,?3/M7RAXK_X*K>!M%\1ZA8:3X7U77M/
MMY3'#J4<\<*7 '&]48;@I.<9Y(P<#.*SP^78K%3E"C"[COMI\]BJN*HT8J52
M5D]C[?;[I^E?)>K?\@;XK_\ 92]+_GIU>L_L\?'2^^/WA67Q'_PAE_X7T1SM
MLKC4+A':\P2&9%49V#&-QX)SC.#7QC\:_P!J_2/A;XY^)_@F?0KO4KF;QC::
MR+R"X18PL2VC-'@@G/[AAGW'I7IY;@J[KSH*/O1M=7722OUL<F*Q%)4HU&]'
M?\F?I2.E+7P(W_!6OPX/N_#S56^NHQ#_ -DKJOA__P %2/AYXJ\06NFZWH>K
M>%X;AA&M],T=Q!&Q( W[<,%]P#]*YYY%F4(N3HO3T?Y,TCF6$D[*?YGVC7E_
M[3?_ "0CQG_V#Y/Z5I_&;XO:7\&?A?JWC:^C^W6-C$LBQ0RJIG+L%158Y'S%
MA@^]?"_Q5_X*<>'_ (A_#W7?#D/@?4[.74;9H%GDOHF5">Y 7FEEN78K%5(U
MJ,+Q4E=Z>0\7BJ-&+A.5FT?9G@[_ )+QXC_[%G2O_1MS7K-?*/[(/Q]LOVBO
MB)XQ\1V&D7&C0VFE:=IY@N9ED9F1YVW94#CY^GM7TUXG\2Z?X/\ #^H:WJUR
MEIIMA ]Q<3R' 1%&2:Y<=0J4J_L9KWDHJWG9&V'J0G3]I%Z7?YFI17P;<_\
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
M"0. .!TJ<SQ$,)E%+"4Y>\[7_-_B5@Z4JV.G7FM%>WY+\#M?^$0T/_H#:?\
M^ D?_P 36)XTL_#'@[PGK&NWND:>EKI]I+=2L+2+.U%+'M[5V5>/_M7>"_$7
MQ&^"6N^%O#-U96.H:MY=L]Q?NRQK"7!D'RHQ)905Z?Q9SQ7PV&3K5H4Y2LFT
MCZ.LU"G*26R/Q1GEO?B#XYDE6#?J&LWY<0VZ$CS)9,[54<XRV *_1+_@H9\/
M=-^'?[*W@C1[.TMHY=/O[.S:XBB4-)LMI%)+8R<D9YKC_P!G/_@GOXJ\&_&?
MPQK_ (DUC0+O2M,N1>/!923R2NZ L@ :-1]X+SGCWKZ?_;D^!NM_'KX6:9H.
MA7NGV5W;ZI'=M)J+NJ%1'(I *(QSEAV]:_1LPS"E+,<+3A+W8ZO?T_0^4PN%
MFL)6G)>\]#\8H(7N)DBC4O(Y"JJC))/05^Q7[%_[,.F_!3X/QW7B'3;:?Q-K
M"+>WYNH5D-NF,I",YQM!)..Y(["O#_V4O^">>I^"OBI9^)O&^I:/JECI(%Q:
MV6GO+)YEQGY"^^-1M7EN,Y(';-?>/CRWOKKP7K<&ER)#J,EG*EO)(Y15D*D*
M20"0,]P#7#Q%FJKRC@Z#TT;?Y+]3IRK!>R3Q%5:]#\*OC;XCB\9_&/Q?JMK'
M EK=:I/Y"VZ;$,8<JA [950?QK]3;'X#VLG[#<?AFTTJT_M>X\,&1)(8%:1I
MI(S+]YAG.6]:^1?#W_!-KQ\?$NG3ZEXB\.-:_:D><P3W!D*[@6QNAP3UZU^K
M=O:QV]K';JH\I$"!<<8 P*?$&/A3CAZ>'=^5WZ]+6%E>&E)U9U5OI]^Y_.VZ
MM#*58%74X((P0:_6W]D;]HWX4>/_ (7^'M'U>\T'1_%EA;)9W%EJBPPO,4&U
M7C9P ^X $X.0<Y'<\A^TY_P39L?'VO:CXK\!:M:>'KZY)GN]+O8V%J[GEG1D
M!*$]2-I!/IFO@?Q1\"-?\(W<=O=W>G2.XR##+(P_6,5[E5X/B+#1Y9N+7X/M
MV9YT%7RJJ[Q33_$_4']K?XM?#KP3\$?%46EZIX9?Q'=63V]E:VMQ;FYW/\N]
M%7+';G/2ORL^"7@Y_B!\6_"?AY$#_;]1AA()(&W<,Y(Z#%=WX._9%\7^-KG3
MX;/4M$A-[((D:>>8;23CG$1K[:_91_X)ZZO\$/B18^,O$OB73=1N;)9%AL--
MBE*[F7 <R/MZ9Z;/QKG@\-D.#J051RD[VT>]K(TDJV95X-PM%>9]BV_@C0+>
K".)=%T_:BA1FUC/ X_NU-_PB>BC_ )A%A_X"Q_X5K45^4\\NY]KRKL?_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>7
<FILENAME>dsgx-20250131xex99d1030.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20250131xex99d1030.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" !" , # 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#]4Z*** "B
MBD)"C).!ZF@!:**\H_:(^.UI\$?",3VUN-:\8ZO(+'P]X?B<";4+MB%4 $C"
M*6#.W0*#0!ZH94$HCWKYA!8)GD@=3C\13Z\,_9M_9YNOAC'=>+O&NM7'C#XI
MZY$#JNMWK[_LRL0YL[8$D1P(V!M7 .T' X R_P!H']I#6- \4V7PP^%.EV_B
MWXJZFNYH99,6FB6_>ZNV . ,C"<%NV> 0#Z'HK\DOAG>?%2\_P""G^E^$W^)
M^N^,;7091/K,TUT[68 M0US$D /EHGF.8U  QD'J*_6V@ HHHH ***XJY^-/
M@BV\9P^$AXDLKCQ-(X3^R[1S/.A)P"ZH#L'NV * .UHHHH **K:CJ-KI%A<7
MU[<16EG;QM+-/,P5(T R68G@ #O7-?#3XK>&?B_HMSK'A+4&U;2(+I[,7ZP2
M1PSNF-QB=U E0$XWIE<@@'B@#KJ*Y?3?B?X3UCQK?>$;#Q!87GB:QB\^ZTR"
M8/- F<9<#[O/K7S?_P %!OVV%_92\&6&EZ!"E_\ $#Q KC3H'7<EK$/E:X<=
M_F("K_$<]E- 'TYXM\<^'? >F2ZCXCUS3]#L8UW-/?W*0J!]6(S6?\//BQX.
M^+6G7%_X-\2:=XDM+>3RII=/G$@C;GAL=.AZU^:GQM\+>#O#?P?M/^$BCO\
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
M&&C:*V<>5=WL:R9QG[F=WZ5P,O[7?A;5@4\%Z!XJ^(4Y_P!7_8&CR>0_./\
MCXF\N+'?.X\8KO/"OP0^'W@B&)-#\%Z'IS1C GCL(S,Q[EI2"[L>[,23W-=I
M'$D*!(T5$'15& * /#3XT^//C1$_L3X>^'O =JYS]J\6:R;NYVYZBVM4*@X[
M--UX[9-J#X.?$G7W+^+/C%?K&2Q^R>$],BTR, CA=[F:0XYY##Z5[710!XG>
M?L=_##Q#-;7'B[2K[Q_=6W,4WB[4[C4MA[[4E<HN<<@* :]1\*^"/#O@73EL
M/#>@:7X>L5&%M=*LX[:(?144"MNB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH 1E#*58 @C!![TD<:0QJD:JB*,!5& !]*** '4444 %%%% !1110 4
6444 %%%% !1110 4444 %%%% '__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>8
<FILENAME>dsgx-20250131xex99d1033.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20250131xex99d1033.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" !S CX# 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#]4Z*** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BD)Q7B'C[]M;X+?"_Q9?^&?$_CNPTG7+%@MQ9S*Y:,E0PSA<=
M"#0![A17S?\ \/%?V=_^BF:7_P!\R?\ Q-36?_!0G]GR_N%AB^)FD[VX&[>H
M_,K0!]%45RO@CXJ>$/B3;?:/"_B33->B W'[#<I(0/< Y%=3F@!:*** "BBO
M)_BW^U3\+/@7KUKHOCGQ=9^']3N;<745O<!BS1%F4-P#QE6'X4 >L45\W_\
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
M1<^N!5G_ (9^_:-_Z$_QW_WZN/\ &@#^C"D!S7\Z2?L_?M&[U_XH_P =]?\
MGE<?XU^_OP=M+RP^%/@^VU".6&_ATFU2>.<'S%D$2A@V><YZT =C29Q2TA&:
M / OVG?VT? ?[*EWX;MO%ANKB?69BHAL%#R00C@S,I(RH.!@<GMG%>E?#+XR
M^"_C%HD.J^#_ !%8ZY:2+N_T:8%T_P!Y.J_B*^'/^"@G_!.#Q/\ 'KQC=_$7
MP7XAEU'6GA6.30=3<"-508 MW_A'^R>Y)S7YC^(_@K\8_@AJKKJ'ACQ/X:N8
M6_X^;>&54^HD3Y3^= '])5S=0V=O)/<2I!!&I9Y)&"JH'4DGH*_ C_@IC\3_
M  Y\5?VK->U+PQ<17NGVEM!8O>0$%)I8UP[ CJ >,^U>17'BKXP^/D72IM3\
M9:\C_*+-IKJ<'VVY-?2?[*__  2Z^(WQ<\0V&I^.].N/!?A!)!)<?;5VW=PH
MYV)&>5STRV,4 ??W_!)SPQ?>&_V/=%DO4:,:EJ%U?0!O^>3,%4_0["?QK[(K
M*\*^&--\%^'--T+1[5+/2].MTMK:",8"(HP!6K0 5Y-^U)\";']HWX(^)?!%
MTR0W-[ 7L;IQG[/=+S$_TW<'V)KUFD(R: /YEY(O&?[-GQ?4,)] \8>&K\,#
M@@I(AZ_[2L/P(-?MM^R;_P %#?A[^T/X=L;75=3MO"_C5(UCN],OI1&DLF,%
MX6/#*3VZCI6C^V-^P7X._:PTM;UI/^$=\:6J8MM;MXPWF =(YE_C7WZCMZ'\
MD_B]_P $\_CC\&K^9G\)WFOZ?$3LU+05-PI /!VK\P_*@#^@N.5)8U=&#HPR
M&4Y!%9/B;QEH7@O3WOM>UBRT>S0$F:]G6)<#ZGFOYO;;Q%\7_"8_L^#4/&6D
MA3C[,DEU%CVVUN^'/@3\=OC=?HEGX8\6:^TI'^D7L<WE#/<R287]: /Z(?!/
MCG0OB/X:M?$'AK4X-8T:ZW>3>6S;D?:Q5L'V((_"MVOD_P#X)Q? 3XA_LZ?!
M6]\+^/9;3][J#7UC:6\ID>U5U'F(QQC&Y=P [EO6OJ\D*"2< =S0!2UK6++P
M]I-YJFI74=EI]G"T]Q<3,%2.-02S$]@ *_![_@H+^VK>_M0?$!])T:XE@^'V
MC3%;"WSC[5(.#<./?G:#T'UKV?\ X*A?MV?\+$U*Z^$_@74=WAJSEQK%_;2<
M7LRG_5*1UC4CGU(]J_. *6. ,GT% "45T>B?#?Q9XE.-)\,ZOJ?_ %Z6,LO_
M *"IKIT_9G^+<D?F+\,_%A3U_L:X_P#B* /-:^B_^">7_)Y/PR_["#?^BGKR
M#6_A'XX\-H6U;P=KVFJ.IN]-FC _-17L/_!/>)X/VS/AFDB-&XU%LJPP1^Z?
MM0!_0W12 TM !7XH?\%G_P#DZ/0O^Q8MO_2BXK]KZ_(O_@K-\"?B%\3/VC=&
MU3PIX-UCQ!IT?AVW@>ZT^T:6-9!/.2I('7# _C0!]'?\$<_^30YO^QDO?_1<
M%=A_P46_9+B_:4^#\]]I-JC>-?#T;W.G.!\TZ 9>#/\ M 9 ]0/6L_\ X)4^
M /$?PV_9>ETCQ3HE[H&IG7[N<6E_"8I/+9(0&P>QP?RK[%/(H _G<_8S_:<U
M7]DWXV6FKSBX.@SR?8M<T['+19P6VG^-#R/H1WK^A#PQXDTWQAX>T[7-'NX[
M[2]1@2YMKB)LK)&PRI'X&OR<_P""F'[!>OCXG#X@?#/PW=ZO9^(&+:EINF0%
MS;W..9 HZ*_4^^?6O7_^"67BKXK>!+*[^&'Q#\%^(-,T1%:YT?4[^SD6. ]7
M@9B. >J^^10!^C%%(*6@ HHHH _GR_X*3?\ )Z'Q&_Z^8O\ T2E?L3_P3^_Y
M,X^%G_8*'_HQZ_+W]O[]F_XH^-OVM/'NLZ!X"U[5]*NKB(PWEI9/)'(!$@)#
M <\BOU4_8A\-ZIX0_93^'&CZU83Z7JMIIHCN+.Z0I)$V]CAE/0\T >Y4444
M%%%% 'PM_P %B_\ DT^'_L.VO\GKY"_X(Q?\G&>(O^P&_P#Z,6OMW_@JIX \
M2?$C]F>+2O"VB7NOZD-9MI3:V$)EDV /EL#L,U^0^G?LM_'?2)3+8?#OQ?92
MD;2]O9RH2/3(H _I!HK^<_\ X9^_:-_Z$_QW_P!^KC_&C_AG[]HW_H3_ !W_
M -^KC_&@#^B\G%+7QS_P2T\)>,?!G[.-[8^.-/U73-8.NW$BPZNKB8QF.+:1
MNYVY!_6OL6@!:YOXB_$'1/A9X)UCQ5XBO%L='TNW:XN)6ZX Z =V)X [DUTE
M>%_M@_LQK^U5\*9/"7_"27GAN:.874,L W0RR ':LR=63GL01UYH Q/V<OV]
M?A5^T?9HFEZNN@ZX>'T76'2*<'_9.=KCZ'\*^C@P8 @@@]Q7\]'QA_8)^-OP
M.U25I_"=_K%A$V8]5T)&N(R!W^0;E_$5Y[:^/OC#H$!TRWU[QC8Q+\AM4N;I
M /;;F@#]4O\ @L-\7/"EA\!K?P(][;W?BK4=2@N8K*-@TEO%'N+2-C[O4 9Z
MY-?(?_!'WPO?:Q^UBNJP(QL](T>ZEN9!T'F*(U!/N6_0UXK\,/V0OC5^T#KT
M1L/"FLRQSN/-U?6$>*%0?XC))RWX9K]I?V+/V0-%_9)^'#:9#,NJ>)M299M6
MU79M\Q@/EC0=D7)P.Y)/>@#Z)HHHH **** "BBB@ I,4M% !28I:* $Q2T44
M %%%% !24M% !1110 4@&*6B@ HHHH 2FO"DHPZJP]&&:?10!!'86T1REO$A
MZY5 *FQBEHH **** "BBB@!,48%+10!"UI YRT,9/NHJ18U0850H] ,4ZB@!
M#QS7Q/\ MO?';QUXKN;KX)_ [3;O6?&M[&$UK4K+B/2H''W&EZ([ ^N0#[U]
MK31^;$Z;F3<"-RG!'TK&\*>"M$\$V4MKHNG0V*32M//)&O[RXE8Y:21_O.Y/
M)9B2: /S.^!__!%^#RX+_P"*OBB224X:32]".![@S,/Y"OM_X8?L5?!/X10Q
M#P[\/=(6YC'_ !^W\/VRX8^IDEW'\L"O;<4M %:TTZTL(EBMK6&WB485(HPH
M'T JQBEHH BEMHIU*R1)(IX(900:Y&?X,> [CQ+8>(6\'Z*-=L)/-MM22QC2
M>)L$9#@ YP379T4 (!BEHHH *3%+10 F*",TM% "8HQ2T4 (!BEHHH *0\TM
M% "8S1BEHH **** "BBB@!,4M%% !1110 F*6BB@ I#S2T4 -*@_3TJ%M/M7
M<.UO$7'\1C&?Y58HH :J!!@  >@%+TI:* "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
)BB@ HHHH __9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>9
<FILENAME>dsgx-20250131xex99d2001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20250131xex99d2001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" !C M # 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#X_HHHK]+/
MSH**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ K1\/>'-5\7:S;:1HFG7.K:K
M<DB"SM(R\LA )(51UP 3^%9U>[?L,?\ )UO@'_KO<?\ I-+656?LZ<IKHFS2
ME#GG&#ZM(X3Q)\!OB3X.TF;5-<\!>(=*TV$9EN[G3Y%BC'JS8P![FN$!!&0<
MCUKW70?VIOB5\//BU?W:^*]6UG2UU>:&ZT;5+I[JUN;?SV5HBCD@97(!7!%2
M?MO_  YT;X:?M":Q9:!;+8:5J-K!JD=BB!%MFE4[T51]T;E) [;L5C"K/G4*
MB6JNK?UYFLZ<.1SIMZ.SN<-H/[/GQ.\4:1:ZKH_@#Q!JFF7:"6WN[6Q=XY4/
M1E8=17(^(_#6K>#]:N='UW3;G2-5MB!/97D9CEC) 8;E/3((/XU]SZ_X,\9>
M*OV?O@2_A;XIZ5\/(H?#[K/!J7B)],-TQ==K*J_?VX(SVS[U\1>.)-3?QAJZ
M:SK)\0ZG#<O!/JGVIKD7)0[=ZRMRZD 8/IBIH5I5F[VTOWOO8JO15)*U];?D
M7/ _PM\8_$V6YC\)>&-4\1-;8\\Z?;F18L]-S= 3Z$U1\7>"/$/@#5CI?B;0
M[_0-1"A_LVH0-$Y4_P 0SU'N*^H_@1XCA^)?[/=E\*?"/CT?#3XB6NK37ZK+
M,]K%KZMDJGVA/F#*,#;_ +*\$=/#/CXGQ-TOQE!H'Q4N]1NM=T>V%O;G4)A.
M?LY8LK)(/]8I.?FR3Q@],!PK2E5<'96Z=?7T%.E&--35W?KT]#S[3-,O-;U&
MVT_3K2>_O[EQ%!:VT9DEE<]%51R3]*[3Q7\ _B5X&T9]7\0^!-=TC2TQOO+F
MS81QYZ;B,[?QQ7MGP+OO^%,?LF^.OBSHMO ?&]UK$?AS3M3= \FFQ,J%W0$$
M!CN/..R]N*\0E^/'Q'N=+UC3;GQSKU]8:Q"UO?VUY?/.DZ,<D$.3C/JN#@D=
M#352I.34$K)VU_$3ITX13FW=J^APM6=.TZYU:^@L[2)I[F9@J(O<_P"'O58#
MH "3T %>Z?"[P<OA:S^WWB#^U+E>AZPI_='N>_Y5ZF'H.O.RVZGE8K$+#PYN
MO0\,E4PNZN0"A*D]N.M>BV_[.'Q6N].COX/ASXEGLI(A,D\6G2,KH1D,,#D$
M'->=:GS+=_[[_P S7Z=?$[X=?%/Q%KOPB\2>$/&B>%?"&B^&=/N=9:76'MXT
M2,^9+(\"\.OE\9(P>AZ5Y&)KN@XI6UOOY'KX:@JR;=]+;>9^8LB-"[I(IC="
M5=7&"I!P01V(->AZ7^SG\5-;TRUU+3_AYXCO=/NHEF@NH+!VCE1AE64]P000
M:U?VK/''A?XD_'WQ9XA\'Q*F@7<L8CE2+RUN76-5DF"^CL"V3R<Y/6O5OV!O
MB/XMU+]H;P[H=WXHUFZT6/3;U4TV:_E>V0);ML C+;1MP,<<8XJJE6I&C[5*
MSM=I_D%.E3E6]E)W5[)KU/ /&7P<\=_#O3HM0\4^#]9\/6,LHACN=1M&B1I"
M"0H)[X!./:LOPAX&\1?$'5'TWPQHE]K^H)$9FM=/A,L@0$ M@=LD#\15SQA\
M1O%GB\SV6O>*-9UNSBNGDCM]1OY9XT8,P#!78@'!(S7NW[ %M<WGQ%\?6]E?
MQZ5>3>"M1CAOY9C"ELY,865I!]P*<$MVQFJJ5)TJ+G*UU]Q,(0J55"-[,\7\
M6? _XA^ ]'?5O$G@G7-"TM'6-KR_LVBB#,<*-Q[DUQ<43SRQQ1(TDLC!$1 2
MS,3@  =23QBO;?CMX;\>^#/#FG0^)/B[I_Q T^_GV?8=*\32:FL;(NX/(A.
M/0^M8/[,?Q(T'X2?''PSXJ\3:>VHZ-8R.)52,2-"70JLRJ>I0D-CKQQSBG&I
M)TG/=^77[Q2IQ510V7G_ , SM=_9[^)_AC0Y-9U;P!XAT_2HD\R2[GL7"1K_
M 'F[J/<@5QVI:#J.CQ0RWME+;13Y\J20?+)CKM/0X]J^KOC3H/QBT30?$OQ!
M\(?%34/B#\,-;$ZW.H:?J+M]GMY6(,4ULQ_=X!VY0<#KMSBODB:]N+B&**6X
MEEBBSY:.Y94SUV@],^U*A4E5CS-KY7_4*U.--V2?SM^A#11174<X4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5ZE^R_\ $'1O
MA5\>/"GBKQ!++#H^G2RO<201&1P&A=!A1R>6%>6T5$X*I%P>S*A)PDI+H?36
MGR_LW>$?&;^,I_%'BSQQ<0WKZE!X>_LA;2&>8N9$221C]P,1GZ=^E>,?&3XJ
M:K\:_B1K7C'6%6&[U&0;+9&+);Q*-L<2D]0H'7N23WKC**RA14)<S;;VU-)U
M7-<J22WT/J77O%/P4^+/PF^%FC>*?&VN>'-7\)Z0UA-#9:(;E'=V4GYB>VT=
M/6OGOQ]IOAG2/%-S:^#]9O-?\/HB&"_OK3[-*[%1O!C[ '('K7/44Z=+V>TG
M;MIUU[!4J^TW2OWUZ:=SV/X?^&/@=XF\%6:^*_&GB7P9XLAD?[6\6FB]M+A-
MV4\H+\R$#C)/7FK7[5'QBT#XK^(/"EEX8_M"YT/PMHD6C0:GJPQ=7Y7DRN.W
M;&>>IXSBO$J*2HKGYVV[;>5P=5\G(DE??SL>X? #XYZ#X-\*^*/AWX^TJXU;
MX>^*"LES)8X^UZ?<* %GB!X.-JDCKE01GD&'QIX*^!&B^&M4N_#OQ+\1^(M9
M,1_LW39-#^SHLF1@3R-P1C/*XKQ6BCV*YW.+:OOY_P!>0_;/E49).VWD=EX+
MM=.T-H]8UB=(V'-M;GYF/^V5'/T_.NU3XIZ*SX-S*H_O-$<5XRQ+,6)))ZDT
ME>O3QDJ,>6G%6/%JX&->3G5D[^706\_?-/MYWLQ!^I-?6'Q!_:WTNP^,'PL\
M8>#VFU*ST+PQ!H6MV-U"8DNX\D3P$-PP*G()XW 5\G45Y52E&JTY=+_B>Q3J
MRI)J/E^!V_QFB\$+\0M2G^'=Y<W7A2[;[3;0WEN89;0L26@P>JJ?ND=L#M75
M_LD_$W0?@_\ '+2O%'B6::#2+>SNX9'MX3*X:2$HN%')Y->.T42I*5-TY/2U
MO,%4<:BJ16M[^1)=2"6[N)%^Z\KN/H6)%>T_LH_$;PI\.?%OBUO&-]=:;I.M
M^&KS11<V=L;AXWF*#.P>@#'\*\2HJJD%4@X/J3";IR4UT/5/'W@WX-Z'X6FN
M/!GQ UWQ!KRM&L5C?:&+6)UW .3)GC R1ZURGPS'@P^,;1?'YU9?##(ZSOHF
MS[2CE<(X#<%0>2!R<5RU%)0:BXN3?GU&YIR4E%(^J_#/C_X/_L]>#_'I\$>,
MM?\ 'FL^*-(ETB'3+W3#9VENLG!EF)X=E&>0.>F.<U\IHNQ%7K@8I:*5.DJ;
M;O=ON.I4=2RM9+L%%%%;&04444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
?!1110 4444 %%%% !1110 4444 %%%% !1110!__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>10
<FILENAME>dsgx-20250131.xsd
<DESCRIPTION>EX-101.SCH
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.9.0.3 -->
<!--Based on XBRL 2.1-->
<!--Created on: 3/5/2025 10:04:39 PM-->
<!--Modified on: 3/5/2025 10:04:39 PM-->
<xsd:schema targetNamespace="http://www.descartes.com/20250131" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:deprecated="http://www.xbrl.org/2009/role/deprecated" xmlns:us-roles="http://fasb.org/us-roles/2023" xmlns:currency="http://xbrl.sec.gov/currency/2023" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:us-types="http://fasb.org/us-types/2023" xmlns:srt-roles="http://fasb.org/srt-roles/2023" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:sic="http://xbrl.sec.gov/sic/2023" xmlns:srt-types="http://fasb.org/srt-types/2023" xmlns:stpr="http://xbrl.sec.gov/stpr/2023" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:net="http://www.xbrl.org/2009/role/net" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:naics="http://xbrl.sec.gov/naics/2023" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:exch="http://xbrl.sec.gov/exch/2023" xmlns:attributeFormDefault="unqualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:srt="http://fasb.org/srt/2023" xmlns:dsgx="http://www.descartes.com/20250131" xmlns:dtr="http://www.xbrl.org/2009/dtr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" id="StatementConsolidatedBalanceSheets">
        <link:definition>00100 - Statement - CONSOLIDATED BALANCE SHEETS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" id="StatementConsolidatedStatementsOfOperations">
        <link:definition>00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" id="StatementConsolidatedStatementsOfComprehensiveIncome">
        <link:definition>00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" id="StatementConsolidatedStatementsOfCashFlows">
        <link:definition>00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" id="DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails">
        <link:definition>40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" id="DisclosureTradeAccountsReceivableDetails">
        <link:definition>40501 - Disclosure - Trade Accounts Receivable (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" id="DisclosureOtherReceivablesDetails">
        <link:definition>40601 - Disclosure - Other Receivables (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails" id="DisclosurePrepaidExpensesAndOtherDetails">
        <link:definition>40701 - Disclosure - Prepaid Expenses and Other (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" id="DisclosurePropertyAndEquipmentDetails">
        <link:definition>40801 - 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://www.descartes.com/role/DisclosureIntangibleAssetsDetails" id="DisclosureIntangibleAssetsDetails">
        <link:definition>40901 - 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://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" id="DisclosureAccruedLiabilitiesDetails">
        <link:definition>41101 - Disclosure - Accrued Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" id="DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails">
        <link:definition>41302 - Disclosure - Leases - Components of operating lease expense (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" id="DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails">
        <link:definition>41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2" id="DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2">
        <link:definition>41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)-Calc2</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" id="DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails">
        <link:definition>41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" id="DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails">
        <link:definition>41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" id="DisclosureOtherChargesComponentsOfOtherChargesDetails">
        <link:definition>42001 - Disclosure - Other Charges - Components of Other Charges (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" id="DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails">
        <link:definition>42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" id="DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails">
        <link:definition>42201 - Disclosure - Segmented Information - Breakdown of Measures of Profit (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" id="StatementConsolidatedStatementsOfShareholdersEquity">
        <link:definition>00400 - Statement - CONSOLIDATED STATEMENTS OF 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://www.descartes.com/role/DisclosureShareCapitalTables" id="DisclosureShareCapitalTables">
        <link:definition>31503 - Disclosure - Share Capital (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" id="DisclosureOtherChargesTables">
        <link:definition>32003 - Disclosure - Other Charges (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" id="DisclosureBasisOfPresentationDetails">
        <link:definition>40201 - Disclosure - Basis of Presentation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" id="DisclosureAcquisitionsDetails">
        <link:definition>40301 - Disclosure - Acquisitions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" id="DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails">
        <link:definition>40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" id="DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails">
        <link:definition>40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" id="DisclosureFairValueMeasurementsDetails">
        <link:definition>40401 - Disclosure - Fair Value Measurements (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" id="DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails">
        <link:definition>40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" id="DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails">
        <link:definition>40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" id="DisclosureGoodwillDetails">
        <link:definition>41001 - Disclosure - Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" id="DisclosureLongTermDebtDetails">
        <link:definition>41201 - Disclosure - Long-Term 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://www.descartes.com/role/DisclosureLeasesDetails" id="DisclosureLeasesDetails">
        <link:definition>41301 - 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://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" id="DisclosureCommitmentsContingenciesAndGuaranteesDetails">
        <link:definition>41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" id="DisclosureShareCapitalDetails">
        <link:definition>41501 - Disclosure - Share Capital (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" id="DisclosureShareCapitalCommonSharesOutstandingDetails">
        <link:definition>41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" id="DisclosureEarningsPerShareDetails">
        <link:definition>41601 - Disclosure - Earnings Per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" id="DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails">
        <link:definition>41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" id="DisclosureStockBasedCompensationPlansAdditionalInformationDetails">
        <link:definition>41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" id="DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails">
        <link:definition>41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" id="DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails">
        <link:definition>41705 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails">
        <link:definition>41706 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails">
        <link:definition>41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" id="DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails">
        <link:definition>41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" id="DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails">
        <link:definition>41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" id="DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails">
        <link:definition>41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" id="DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails">
        <link:definition>41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" id="DisclosureIncomeTaxesAdditionalInformationDetails">
        <link:definition>41807 - Disclosure - Income Taxes - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails">
        <link:definition>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDefaultDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDefaultDetails">
        <link:definition>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations Default (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" id="DisclosureOtherChargesRestructuringProvisionDetails">
        <link:definition>42002 - Disclosure - Other Charges - Restructuring Provision (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" id="DisclosureOtherChargesAdditionalInformationDetails">
        <link:definition>42003 - Disclosure - Other Charges - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" id="DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails">
        <link:definition>42202 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" id="DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails">
        <link:definition>42203 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" id="DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails">
        <link:definition>42204 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" id="DocumentDocumentAndEntityInformation">
        <link:definition>00090 - Document - Document And Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" id="StatementConsolidatedBalanceSheetsParentheticals">
        <link:definition>00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" id="StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals">
        <link:definition>00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" id="DisclosureDescriptionOfBusiness">
        <link:definition>10101 - Disclosure - Description of the Business</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" id="DisclosureBasisOfPresentation">
        <link:definition>10201 - Disclosure - Basis of Presentation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitions" id="DisclosureAcquisitions">
        <link:definition>10301 - Disclosure - Acquisitions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" id="DisclosureFairValueMeasurements">
        <link:definition>10401 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" id="DisclosureTradeAccountsReceivable">
        <link:definition>10501 - Disclosure - Trade Accounts Receivable</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" id="DisclosureOtherReceivables">
        <link:definition>10601 - Disclosure - Other Receivables</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther" id="DisclosurePrepaidExpensesAndOther">
        <link:definition>10701 - Disclosure - Prepaid Expenses and Other</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" id="DisclosurePropertyAndEquipment">
        <link:definition>10801 - 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://www.descartes.com/role/DisclosureIntangibleAssets" id="DisclosureIntangibleAssets">
        <link:definition>10901 - 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://www.descartes.com/role/DisclosureGoodwill" id="DisclosureGoodwill">
        <link:definition>11001 - Disclosure - Goodwill</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" id="DisclosureAccruedLiabilities">
        <link:definition>11101 - Disclosure - Accrued Liabilities</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" id="DisclosureLongTermDebt">
        <link:definition>11201 - Disclosure - Long-Term 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://www.descartes.com/role/DisclosureLeases" id="DisclosureLeases">
        <link:definition>11301 - 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://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" id="DisclosureCommitmentsContingenciesAndGuarantees">
        <link:definition>11401 - Disclosure - Commitments, Contingencies and Guarantees</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureShareCapital" id="DisclosureShareCapital">
        <link:definition>11501 - Disclosure - Share Capital</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShare" id="DisclosureEarningsPerShare">
        <link:definition>11601 - Disclosure - Earnings Per Share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" id="DisclosureStockBasedCompensationPlans">
        <link:definition>11701 - Disclosure - Stock-Based Compensation Plans</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxes" id="DisclosureIncomeTaxes">
        <link:definition>11801 - 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://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" id="DisclosureContractBalancesPerformanceObligationsAndContractCosts">
        <link:definition>11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherCharges" id="DisclosureOtherCharges">
        <link:definition>12001 - Disclosure - Other Charges</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" id="DisclosureSupplementalCashFlowInformation">
        <link:definition>12101 - Disclosure - Supplemental Cash Flow Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" id="DisclosureSegmentedInformation">
        <link:definition>12201 - Disclosure - Segmented Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" id="DisclosureBasisOfPresentationPolicies">
        <link:definition>20202 - Disclosure - Basis of Presentation (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" id="DisclosureBasisOfPresentationTables">
        <link:definition>30203 - Disclosure - Basis of Presentation (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" id="DisclosureAcquisitionsTables">
        <link:definition>30303 - Disclosure - Acquisitions (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" id="DisclosureFairValueMeasurementsTables">
        <link:definition>30403 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" id="DisclosureTradeAccountsReceivableTables">
        <link:definition>30503 - Disclosure - Trade Accounts Receivable (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" id="DisclosureOtherReceivablesTables">
        <link:definition>30603 - Disclosure - Other Receivables (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables" id="DisclosurePrepaidExpensesAndOtherTables">
        <link:definition>30703 - Disclosure - Prepaid Expenses and Other (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" id="DisclosurePropertyAndEquipmentTables">
        <link:definition>30803 - 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://www.descartes.com/role/DisclosureIntangibleAssetsTables" id="DisclosureIntangibleAssetsTables">
        <link:definition>30903 - 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://www.descartes.com/role/DisclosureGoodwillTables" id="DisclosureGoodwillTables">
        <link:definition>31003 - Disclosure - Goodwill (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" id="DisclosureAccruedLiabilitiesTables">
        <link:definition>31103 - Disclosure - Accrued Liabilities (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesTables" id="DisclosureLeasesTables">
        <link:definition>31303 - 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://www.descartes.com/role/DisclosureEarningsPerShareTables" id="DisclosureEarningsPerShareTables">
        <link:definition>31603 - Disclosure - Earnings Per Share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" id="DisclosureStockBasedCompensationPlansTables">
        <link:definition>31703 - Disclosure - Stock-Based Compensation Plans (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesTables" id="DisclosureIncomeTaxesTables">
        <link:definition>31803 - Disclosure - Income Taxes (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsTables">
        <link:definition>31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" id="DisclosureSupplementalCashFlowInformationTables">
        <link:definition>32103 - Disclosure - Supplemental Cash Flow Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" id="DisclosureSegmentedInformationTables">
        <link:definition>32203 - Disclosure - Segmented Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" id="DisclosureAcquisitionsProFormaResultsOfOperationsDetails">
        <link:definition>40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" id="DisclosureTradeAccountsReceivableTradeReceivablesDetails">
        <link:definition>40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" id="DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails">
        <link:definition>40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" id="DisclosureOtherReceivablesAdditionalInformationDetails">
        <link:definition>40602 - Disclosure - Other Receivables - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" id="DisclosureIntangibleAssetsAdditionalInformationDetails">
        <link:definition>40902 - Disclosure - Intangible Assets - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" id="DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails">
        <link:definition>41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails">
        <link:definition>41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails">
        <link:definition>41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails">
        <link:definition>41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails">
        <link:definition>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" id="DisclosureSegmentedInformationAdditionalInformationDetails">
        <link:definition>42205 - Disclosure - Segmented Information - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbaseRef xlink:type="simple" xlink:href="dsgx-20250131_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="dsgx-20250131_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="dsgx-20250131_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="dsgx-20250131_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults" id="DisclosureStandardAndCustomAxisDomainDefaults">
        <link:definition>99900 - Disclosure - Standard And Custom Axis Domain Defaults</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xsd:import namespace="http://fasb.org/us-gaap/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd" />
  <xsd:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xsd:import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd" />
  <xsd:element name="AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" id="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="AfterTaxYear2026Member" id="dsgx_AfterTaxYear2026Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="AmountsRecoverableFromFundsHeldInEscrow" id="dsgx_AmountsRecoverableFromFundsHeldInEscrow" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="AsiaPacificIncomeTaxAuthorityMember" id="dsgx_AsiaPacificIncomeTaxAuthorityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BaseAnnualFeePercent" id="dsgx_BaseAnnualFeePercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" id="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" id="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="CRSUAwardNonvestedNumber" id="dsgx_CRSUAwardNonvestedNumber" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="CRSUAwardNonvestedWeightedAverageContractualLife" id="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsForfeitedInPeriod" id="dsgx_CRSUAwardsForfeitedInPeriod" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsGrantsInPeriod" id="dsgx_CRSUAwardsGrantsInPeriod" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsOutstandingNumber" id="dsgx_CRSUAwardsOutstandingNumber" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="CRSUAwardsVestedAndSettledInCash" id="dsgx_CRSUAwardsVestedAndSettledInCash" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsWeightedAverageContractualLife" id="dsgx_CRSUAwardsWeightedAverageContractualLife" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CanadaOrUsPrimeRateBaOrLiborMember" id="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitsCompensationExpense" id="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" id="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitsVestingPeriod" id="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" id="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" id="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" id="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" id="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitLiabilityNumberOfCommonShares" id="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DeferredShareUnitPlanMember" id="dsgx_DeferredShareUnitPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsGrantsInPeriod" id="dsgx_DeferredShareUnitsGrantsInPeriod" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" id="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsOutstandingNumber" id="dsgx_DeferredShareUnitsOutstandingNumber" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DeferredShareUnitsRedeemedAndSettledInCash" id="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DerivativeInstrumentCommonSharesHeldPerShare" id="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DerivativeInstrumentSharesOfCommonStockHeld" id="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DirectorsAndOfficersMember" id="dsgx_DirectorsAndOfficersMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" id="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="EmeaIncomeTaxAuthorityMember" id="dsgx_EmeaIncomeTaxAuthorityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EquipmentInstalledWithCustomersMember" id="dsgx_EquipmentInstalledWithCustomersMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ExistingTechnologyMember" id="dsgx_ExistingTechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncreaseDecreaseInOperatingLeaseLiabilities" id="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="OtherCountriesMember" id="dsgx_OtherCountriesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="OtherReceivablesTableTextBlock" id="dsgx_OtherReceivablesTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="OtherReceivablesTextBlock" id="dsgx_OtherReceivablesTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PSUsAndRSUsMember" id="dsgx_PSUsAndRSUsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ProfessionalServicesAndOtherMember" id="dsgx_ProfessionalServicesAndOtherMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="RevolvingOperatingCreditFacilityMember" id="dsgx_RevolvingOperatingCreditFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" id="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="SeniorSecuredCreditFacilityMember" id="dsgx_SeniorSecuredCreditFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShelfProspectusMember" id="dsgx_ShelfProspectusMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShelfProspectusPeriod" id="dsgx_ShelfProspectusPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" id="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="StockOptionsTreasuryStockMethodMember" id="dsgx_StockOptionsTreasuryStockMethodMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="TaxYear2026Member" id="dsgx_TaxYear2026Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PercentageOfAccountReceivable" id="dsgx_PercentageOfAccountReceivable" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" id="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="NetChbLlcMember" id="dsgx_NetChbLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" id="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" id="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="FoxtrotMember" id="dsgx_FoxtrotMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="XpsMember" id="dsgx_XpsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="XpsTechnologyLlcMember" id="dsgx_XpsTechnologyLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="OtherReceivablesDisclosureAbstract" id="dsgx_OtherReceivablesDisclosureAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="GoodwillDisclosureAbstract" id="dsgx_GoodwillDisclosureAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" id="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncomeTaxDisclosureTable" id="dsgx_IncomeTaxDisclosureTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncomeTaxDisclosureLineItems" id="dsgx_IncomeTaxDisclosureLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ExpensesAndRecoveriesNet" id="dsgx_ExpensesAndRecoveriesNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitMember" id="dsgx_CashSettledRestrictedShareUnitMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ShareholderApprovedStockOptionsPlanMember" id="dsgx_ShareholderApprovedStockOptionsPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="InvestmentAndOtherIncome" id="dsgx_InvestmentAndOtherIncome" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="credit" />
  <xsd:element name="SupplyVisionMember" id="dsgx_SupplyVisionMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="IncomeBeforeTaxesPercent" id="dsgx_IncomeBeforeTaxesPercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" />
  <xsd:element name="DeferredTaxAssetsNetBeforeValuationAllowance" id="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="debit" />
  <xsd:element name="TaxYear2027Member" id="dsgx_TaxYear2027Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="TaxYear2028Member" id="dsgx_TaxYear2028Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" id="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="debit" />
  <xsd:element name="CurrentIncomeTaxRateContinuingOperations" id="dsgx_CurrentIncomeTaxRateContinuingOperations" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" />
  <xsd:element name="GroundcloudMember" id="dsgx_GroundcloudMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="LocalzPtyLtdMember" id="dsgx_LocalzPtyLtdMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="TaxYear2029Member" id="dsgx_TaxYear2029Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="Fiscal2024RestructuringPlanMember" id="dsgx_Fiscal2024RestructuringPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="DeferredTaxAssetsLiabilitiesNet1" id="dsgx_DeferredTaxAssetsLiabilitiesNet1" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="debit" />
  <xsd:element name="OcrServicesIncMember" id="dsgx_OcrServicesIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="AerospaceSoftwareDevelopmentsMember" id="dsgx_AerospaceSoftwareDevelopmentsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="BoxtopTechnologiesLimitedMember" id="dsgx_BoxtopTechnologiesLimitedMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="BaseShelfProspectus2024Member" id="dsgx_BaseShelfProspectus2024Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="Fiscal2025AcquisitionsMember" id="dsgx_Fiscal2025AcquisitionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="PrepaidExpensesAndOtherCurrentAssetsTextBlock" id="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" />
  <xsd:element name="MyCarrierPortalMember" id="dsgx_MyCarrierPortalMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="SellerCloudLlcAndSellerCloudEuropeLtd.Member" id="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="SupplyVisionGroundcloudMcpAndSellercloudMember" id="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="PaymentForContingentConsiderationLiabilityTotal" id="dsgx_PaymentForContingentConsiderationLiabilityTotal" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="credit" />
  <xsd:element name="BusinessCombinationAgreementsPerformanceBasedConsiderationMember" id="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="TaxYear2030Member" id="dsgx_TaxYear2030Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="Fiscal2025RestructuringPlanMember" id="dsgx_Fiscal2025RestructuringPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="SingleReportableSegmentMember" id="dsgx_SingleReportableSegmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="CostOfRevenuesAndNetworkCharges" id="dsgx_CostOfRevenuesAndNetworkCharges" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="debit" />
  <xsd:element name="SegmentReportingOtherSegmentItemAmount" id="dsgx_SegmentReportingOtherSegmentItemAmount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="debit" />
  <xsd:element name="ShareBasedCompensationExpenseAndRelatedTaxes" id="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="debit" />
  <xsd:element name="AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" id="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="credit" />
  <xsd:element name="DeferredTaxAssetsAccumulatedLosses" id="dsgx_DeferredTaxAssetsAccumulatedLosses" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" abstract="false" xbrli:balance="debit" />
  <xsd:element name="ContractWithCustomerAssetIncreaseDecreaseForRevenue" id="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="debit" />
  <xsd:element name="IndefiniteYearMember" id="dsgx_IndefiniteYearMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>11
<FILENAME>dsgx-20250131_cal.xml
<DESCRIPTION>EX-101.CAL
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  10.9.0.3 -->
<!--Based on XBRL 2.1-->
<!--Created on: 3/5/2025 10:04:39 PM-->
<!--Modified on: 3/5/2025 10:04:39 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureTradeAccountsReceivableDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePrepaidExpensesAndOtherDetails" roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_638768090762472203" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent_638768090762472203" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_638768090762472203" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_638768090762472203" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_638768090762482209" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_638768090762482209" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_638768090762482209" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill_638768090762482209" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent_638768090762482209" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638768090762482209" xlink:to="us-gaap_AccountsReceivableNetCurrent_638768090762482209" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638768090762482209" xlink:to="us-gaap_OtherReceivablesNetCurrent_638768090762482209" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638768090762482209" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638768090762482209" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638768090762482209" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_638768090762482209" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_638768090762492208" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity_638768090762492208" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638768090762492208" xlink:to="us-gaap_CommonStockValue_638768090762492208" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638768090762492208" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_638768090762492208" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638768090762492208" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_638768090762492208" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_638768090762492208" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_638768090762492208" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_638768090762492208" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities_638768090762492208" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090762502210" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638768090762492208" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090762502210" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent_638768090762502210" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638768090762492208" xlink:to="us-gaap_DeferredRevenueNoncurrent_638768090762502210" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_638768090762502210" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638768090762492208" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_638768090762502210" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_638768090762502210" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638768090762492208" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_638768090762502210" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_638768090762502210" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_638768090762492208" xlink:to="us-gaap_LiabilitiesCurrent_638768090762502210" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_638768090762502210" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638768090762502210" xlink:to="us-gaap_AccountsPayableCurrent_638768090762502210" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_638768090762512204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638768090762502210" xlink:to="us-gaap_AccruedLiabilitiesCurrent_638768090762512204" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_638768090762512204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638768090762502210" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_638768090762512204" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_638768090762512204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638768090762502210" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_638768090762512204" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_638768090762512204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_638768090762502210" xlink:to="us-gaap_DeferredRevenueCurrent_638768090762512204" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies_638768090762512204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies_638768090762512204" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638768090762522200" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit_638768090762522200" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090762522200" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit_638768090762522200" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_638768090762522200" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090762522200" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090762522200" xlink:to="us-gaap_InterestExpense_638768090762522200" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090762522200" xlink:to="us-gaap_OperatingIncomeLoss_638768090762522200" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_638768090762522200" xlink:to="us-gaap_OperatingExpenses_638768090762522200" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense_638768090762522200" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses_638768090762522200" xlink:to="us-gaap_ResearchAndDevelopmentExpense_638768090762522200" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses_638768090762522200" xlink:to="us-gaap_GeneralAndAdministrativeExpense_638768090762532201" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses_638768090762522200" xlink:to="us-gaap_SellingAndMarketingExpense_638768090762532201" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses_638768090762522200" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638768090762532201" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses_638768090762522200" xlink:to="us-gaap_OtherCostAndExpenseOperating_638768090762532201" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss_638768090762522200" xlink:to="us-gaap_GrossProfit_638768090762532201" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit_638768090762532201" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090762532201" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit_638768090762532201" xlink:to="us-gaap_CostOfGoodsAndServicesSold_638768090762532201" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_InvestmentAndOtherIncome" xlink:label="dsgx_InvestmentAndOtherIncome_638768090762532201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090762522200" xlink:to="dsgx_InvestmentAndOtherIncome_638768090762532201" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_638768090762542201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_638768090762542201" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_638768090762542201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax_638768090762542201" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_638768090762542201" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090762542201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_NetIncomeLoss_638768090762542201" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_638768090762542201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_638768090762542201" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090762542201" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090762542201" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090762542201" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_638768090762552199" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090762542201" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_638768090762552199" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090762542201" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638768090762552199" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090762542201" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638768090762552199" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_638768090762552199" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_638768090762552199" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_638768090762552199" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_638768090762552199" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638768090762552199" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_Depreciation_638768090762562182" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_NetIncomeLoss_638768090762562182" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638768090762562182" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_ShareBasedCompensation_638768090762562182" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_OtherNoncashIncomeExpense_638768090762562182" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090762562182" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_638768090762562182" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090762552199" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_638768090762562182" order="7" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xlink:type="extended" xlink:title="40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_638768090762572186" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_638768090762572186" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_638768090762572186" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638768090762572186" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_638768090762572186" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_638768090762572186" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_638768090762572186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_638768090762572186" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_638768090762582193" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_638768090762582193" order="8" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638768090762582193" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638768090762582193" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638768090762582193" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638768090762582193" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_638768090762582193" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_638768090762582193" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Trade Accounts Receivable (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638768090762582193" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638768090762582193" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent_638768090762592197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_638768090762592197" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xlink:type="extended" xlink:title="40601 - Disclosure - Other Receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent_638768090762592197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherAssetsCurrent_638768090762592197" order="1" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails" xlink:type="extended" xlink:title="40701 - Disclosure - Prepaid Expenses and Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_638768090762592197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_1" xlink:to="us-gaap_InventoryNet_638768090762592197" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetsCurrent" xlink:label="us-gaap_DerivativeAssetsCurrent_638768090762592197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_1" xlink:to="us-gaap_DerivativeAssetsCurrent_638768090762592197" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent_638768090762592197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_1" xlink:to="us-gaap_PrepaidExpenseCurrent_638768090762592197" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_638768090762602191" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet_1" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_638768090762602191" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_638768090762602191" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet_1" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_638768090762602191" order="2" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_638768090762602191" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_638768090762602191" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_638768090762602191" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_638768090762602191" order="2" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xlink:type="extended" xlink:title="41101 - Disclosure - Accrued Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_638768090762602191" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_638768090762602191" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_638768090762612195" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_638768090762612195" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_638768090762612195" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_638768090762612195" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090762612195" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090762612195" order="4" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xlink:type="extended" xlink:title="41302 - Disclosure - Leases - Components of operating lease expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCost" xlink:label="LeaseCost" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost_638768090762612195" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LeaseCost" xlink:to="us-gaap_OperatingLeaseCost_638768090762612195" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost_638768090762612195" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LeaseCost" xlink:to="us-gaap_ShortTermLeaseCost_638768090762612195" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638768090762612195" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638768090762612195" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638768090762622192" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638768090762622192" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638768090762622192" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638768090762622192" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638768090762622192" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638768090762622192" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_638768090762622192" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_638768090762622192" order="5" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2" xlink:type="extended" xlink:title="41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)-Calc2" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_638768090762622192" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_638768090762622192" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_638768090762622192" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_OperatingLeaseLiability_638768090762622192" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_638768090762632189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability_638768090762622192" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_638768090762632189" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090762632189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability_638768090762622192" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090762632189" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_638768090762632189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_638768090762632189" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_638768090762632189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_638768090762632189" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsAccumulatedLosses" xlink:label="dsgx_DeferredTaxAssetsAccumulatedLosses_638768090762632189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="dsgx_DeferredTaxAssetsAccumulatedLosses_638768090762632189" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_638768090762632189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_638768090762632189" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_638768090762642197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_638768090762642197" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_638768090762642197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_638768090762642197" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xlink:type="extended" xlink:title="41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_638768090762642197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments_638768090762642197" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_638768090762642197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_638768090762642197" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_638768090762642197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_638768090762642197" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_638768090762642197" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_638768090762642197" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_638768090762652188" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_638768090762652188" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_638768090762652188" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_638768090762652188" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_638768090762652188" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_638768090762652188" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_638768090762652188" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_638768090762652188" order="8" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_638768090762652188" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_638768090762652188" order="9" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xlink:type="extended" xlink:title="42001 - Disclosure - Other Charges - Components of Other Charges (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_638768090762812189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_RestructuringCharges_638768090762812189" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638768090762812189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638768090762812189" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_638768090762812189" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_638768090762812189" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xlink:type="extended" xlink:title="42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_638768090762822186" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_638768090762822186" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638768090762822186" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_638768090762822186" order="4" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_638768090762822186" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_638768090762822186" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_638768090762822186" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_638768090762822186" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_638768090762832204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_638768090762832204" order="8" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" xlink:type="extended" xlink:title="42201 - Disclosure - Segmented Information - Breakdown of Measures of Profit (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses" xlink:label="us-gaap_CostsAndExpenses" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638768090762832204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CostsAndExpenses" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638768090762832204" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_638768090762832204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CostsAndExpenses" xlink:to="us-gaap_Depreciation_638768090762832204" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SegmentReportingOtherSegmentItemAmount" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount_638768090762832204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CostsAndExpenses" xlink:to="dsgx_SegmentReportingOtherSegmentItemAmount_638768090762832204" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostMaintenance" xlink:label="us-gaap_CostMaintenance_638768090762832204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CostsAndExpenses" xlink:to="us-gaap_CostMaintenance_638768090762832204" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostOfRevenuesAndNetworkCharges" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges_638768090762832204" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CostsAndExpenses" xlink:to="dsgx_CostOfRevenuesAndNetworkCharges_638768090762832204" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LaborAndRelatedExpense" xlink:label="us-gaap_LaborAndRelatedExpense_638768090762842207" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CostsAndExpenses" xlink:to="us-gaap_LaborAndRelatedExpense_638768090762842207" order="6" use="optional" weight="1" />
  </calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>12
<FILENAME>dsgx-20250131_def.xml
<DESCRIPTION>EX-101.DEF
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.9.0.3 -->
<!--Based on XBRL 2.1-->
<!--Created on: 3/5/2025 10:04:39 PM-->
<!--Modified on: 3/5/2025 10:04:39 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt">
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfShareholdersEquity" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesTables" roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureBasisOfPresentationDetails" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureGoodwillDetails" roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLongTermDebtDetails" roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureCommitmentsContingenciesAndGuaranteesDetails" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureShareCapitalDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDefaultDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDefaultDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesRestructuringProvisionDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults" xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStandardAndCustomAxisDomainDefaults" />
  <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" />
  <link:definitionLink xlink:type="extended" xlink:role="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="CumulativeEffectPeriodOfAdoptionAxis" xlink:title="CumulativeEffectPeriodOfAdoptionAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="CumulativeEffectPeriodOfAdoptionDomain" xlink:title="CumulativeEffectPeriodOfAdoptionDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="CumulativeEffectPeriodOfAdoptionAxis" xlink:to="CumulativeEffectPeriodOfAdoptionDomain" xlink:title="definition: CumulativeEffectPeriodOfAdoptionAxis to CumulativeEffectPeriodOfAdoptionDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressesAddressTypeAxis" xlink:label="EntityAddressesAddressTypeAxis" xlink:title="EntityAddressesAddressTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AddressTypeDomain" xlink:label="AddressTypeDomain" xlink:title="AddressTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="EntityAddressesAddressTypeAxis" xlink:to="AddressTypeDomain" xlink:title="definition: EntityAddressesAddressTypeAxis to AddressTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="SubsidiarySaleOfStockAxis" xlink:title="SubsidiarySaleOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="SaleOfStockNameOfTransactionDomain" xlink:title="SaleOfStockNameOfTransactionDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="SubsidiarySaleOfStockAxis" xlink:to="SaleOfStockNameOfTransactionDomain" xlink:title="definition: SubsidiarySaleOfStockAxis to SaleOfStockNameOfTransactionDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LegalEntityAxis" xlink:label="LegalEntityAxis" xlink:title="LegalEntityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityDomain" xlink:label="EntityDomain" xlink:title="EntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="LegalEntityAxis" xlink:to="EntityDomain" xlink:title="definition: LegalEntityAxis to EntityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="SubsequentEventTypeAxis" xlink:title="SubsequentEventTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="SubsequentEventTypeDomain" xlink:title="SubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="SubsequentEventTypeAxis" xlink:to="SubsequentEventTypeDomain" xlink:title="definition: SubsequentEventTypeAxis to SubsequentEventTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="BusinessAcquisitionAxis" xlink:title="BusinessAcquisitionAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="BusinessAcquisitionAcquireeDomain" xlink:title="BusinessAcquisitionAcquireeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="BusinessAcquisitionAxis" xlink:to="BusinessAcquisitionAcquireeDomain" xlink:title="definition: BusinessAcquisitionAxis to BusinessAcquisitionAcquireeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="AdjustmentsForNewAccountingPronouncementsAxis" xlink:title="AdjustmentsForNewAccountingPronouncementsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="TypeOfAdoptionMember" xlink:title="TypeOfAdoptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="TypeOfAdoptionMember" xlink:title="definition: AdjustmentsForNewAccountingPronouncementsAxis to TypeOfAdoptionMember" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain" xlink:title="definition: IncomeStatementLocationAxis to IncomeStatementLocationDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="MeasurementInputTypeAxis" xlink:title="MeasurementInputTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="MeasurementInputTypeDomain" xlink:title="MeasurementInputTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="MeasurementInputTypeAxis" xlink:to="MeasurementInputTypeDomain" xlink:title="definition: MeasurementInputTypeAxis to MeasurementInputTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:title="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:title="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:title="definition: ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis to ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain" xlink:title="definition: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis" xlink:label="StatementScenarioAxis" xlink:title="StatementScenarioAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="ScenarioUnspecifiedDomain" xlink:title="ScenarioUnspecifiedDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementScenarioAxis" xlink:to="ScenarioUnspecifiedDomain" xlink:title="definition: StatementScenarioAxis to ScenarioUnspecifiedDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="IncomeTaxAuthorityNameAxis" xlink:title="IncomeTaxAuthorityNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="IncomeTaxAuthorityNameDomain" xlink:title="IncomeTaxAuthorityNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeTaxAuthorityNameAxis" xlink:to="IncomeTaxAuthorityNameDomain" xlink:title="definition: IncomeTaxAuthorityNameAxis to IncomeTaxAuthorityNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodAxis" xlink:label="TaxPeriodAxis" xlink:title="TaxPeriodAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodDomain" xlink:label="TaxPeriodDomain" xlink:title="TaxPeriodDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TaxPeriodAxis" xlink:to="TaxPeriodDomain" xlink:title="definition: TaxPeriodAxis to TaxPeriodDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="RestructuringCostAndReserveAxis" xlink:title="RestructuringCostAndReserveAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="TypeOfRestructuringDomain" xlink:title="TypeOfRestructuringDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestructuringCostAndReserveAxis" xlink:to="TypeOfRestructuringDomain" xlink:title="definition: RestructuringCostAndReserveAxis to TypeOfRestructuringDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="RestructuringPlanAxis" xlink:title="RestructuringPlanAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="RestructuringPlanDomain" xlink:title="RestructuringPlanDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestructuringPlanAxis" xlink:to="RestructuringPlanDomain" xlink:title="definition: RestructuringPlanAxis to RestructuringPlanDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis" xlink:label="HedgingDesignationAxis" xlink:title="HedgingDesignationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain" xlink:label="HedgingDesignationDomain" xlink:title="HedgingDesignationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="HedgingDesignationAxis" xlink:to="HedgingDesignationDomain" xlink:title="definition: HedgingDesignationAxis to HedgingDesignationDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="FairValueByFairValueHierarchyLevelAxis" xlink:title="FairValueByFairValueHierarchyLevelAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="FairValueMeasurementsFairValueHierarchyDomain" xlink:title="FairValueMeasurementsFairValueHierarchyDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FairValueByFairValueHierarchyLevelAxis" xlink:to="FairValueMeasurementsFairValueHierarchyDomain" xlink:title="definition: FairValueByFairValueHierarchyLevelAxis to FairValueMeasurementsFairValueHierarchyDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="CreditFacilityAxis" xlink:title="CreditFacilityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="CreditFacilityDomain" xlink:title="CreditFacilityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="CreditFacilityAxis" xlink:to="CreditFacilityDomain" xlink:title="definition: CreditFacilityAxis to CreditFacilityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain" xlink:title="definition: VariableRateAxis to VariableRateDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain" xlink:title="definition: ProductOrServiceAxis to ProductsAndServicesDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_1" xlink:title="us-gaap_LossContingenciesByNatureOfContingencyAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_1" xlink:title="us-gaap_LossContingencyNatureDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis_1" xlink:to="us-gaap_LossContingencyNatureDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_LossContingenciesByNatureOfContingencyAxis_1 To us-gaap_LossContingencyNatureDomain_1" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_1" xlink:title="us-gaap_StatementBusinessSegmentsAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_1" xlink:title="us-gaap_SegmentDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="us-gaap_StatementBusinessSegmentsAxis_1" xlink:to="us-gaap_SegmentDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:us-gaap_StatementBusinessSegmentsAxis_1 To us-gaap_SegmentDomain_1" order="1" />
  </link:definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" xlink:title="00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesTables" xlink:type="extended" xlink:title="32003 - Disclosure - Other Charges (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2024RestructuringPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2025RestructuringPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xlink:type="extended" xlink:title="40201 - Disclosure - Basis of Presentation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ComputerEquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LeaseholdImprovementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_EquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="5" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="dsgx_DirectorsAndOfficersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillImpairmentLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BaseAnnualFeePercent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40301 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsTechnologyLlcMember" xlink:label="dsgx_XpsTechnologyLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsTechnologyLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SupplyVisionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GroundcloudMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_LocalzPtyLtdMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025AcquisitionsMember" xlink:label="dsgx_Fiscal2025AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_Fiscal2025AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_OcrServicesIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BoxtopTechnologiesLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_MyCarrierPortalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xlink:type="extended" xlink:title="40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SupplyVisionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_OcrServicesIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BoxtopTechnologiesLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_MyCarrierPortalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_LocalzPtyLtdMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GroundcloudMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xlink:type="extended" xlink:title="40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SupplyVisionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GroundcloudMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_LocalzPtyLtdMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_OcrServicesIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BoxtopTechnologiesLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_MyCarrierPortalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xlink:type="extended" xlink:title="40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SupplyVisionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GroundcloudMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_LocalzPtyLtdMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_OcrServicesIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BoxtopTechnologiesLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_MyCarrierPortalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="us-gaap_IncomeStatementLocationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="us-gaap_MeasurementInputTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputDiscountRateMember" xlink:label="us-gaap_MeasurementInputDiscountRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputDiscountRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExpensesAndRecoveriesNet" xlink:label="dsgx_ExpensesAndRecoveriesNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="dsgx_ExpensesAndRecoveriesNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PaymentForContingentConsiderationLiabilityTotal" xlink:label="dsgx_PaymentForContingentConsiderationLiabilityTotal" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="dsgx_PaymentForContingentConsiderationLiabilityTotal" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xlink:type="extended" xlink:title="40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel2Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_DerivativeAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ComputerEquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LeaseholdImprovementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="dsgx_EquipmentInstalledWithCustomersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_AssetUnderConstructionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureGoodwillDetails" xlink:type="extended" xlink:title="41001 - Disclosure - Goodwill (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GroundcloudMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_LocalzPtyLtdMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_OcrServicesIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_MyCarrierPortalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BoxtopTechnologiesLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_ScheduleOfGoodwillTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_Goodwill" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xlink:type="extended" xlink:title="41201 - Disclosure - Long-Term Debt (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" use="optional" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_VariableRateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_VariableRateDomain" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xlink:type="extended" xlink:title="41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" xlink:label="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" xlink:label="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingenciesTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalDetails" xlink:type="extended" xlink:title="41501 - Disclosure - Share Capital (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BaseShelfProspectus2024Member" xlink:label="dsgx_BaseShelfProspectus2024Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_BaseShelfProspectus2024Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_ShelfProspectusMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_PSUsAndRSUsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ScheduleOfStockByClassTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="dsgx_ShelfProspectusPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xlink:type="extended" xlink:title="41601 - Disclosure - Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_PSUsAndRSUsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xlink:type="extended" xlink:title="41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_PSUsAndRSUsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_EarningsPerShareBasic" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_EarningsPerShareDiluted" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xlink:type="extended" xlink:title="41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitMember" xlink:label="dsgx_CashSettledRestrictedShareUnitMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_CashSettledRestrictedShareUnitMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="20" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xlink:type="extended" xlink:title="41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_IncomeStatementLocationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xlink:type="extended" xlink:title="41705 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xlink:type="extended" xlink:title="41706 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="20" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="21" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xlink:type="extended" xlink:title="41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xlink:type="extended" xlink:title="41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_CA" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="dsgx_OtherCountriesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="dsgx_IncomeTaxDisclosureTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xlink:type="extended" xlink:title="41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_CA" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="dsgx_OtherCountriesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="dsgx_IncomeTaxDisclosureTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xlink:type="extended" xlink:title="41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_InternalRevenueServiceIRSMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_ForeignCountryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="us-gaap_TaxPeriodAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2026Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2027Member" xlink:label="dsgx_TaxYear2027Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2027Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2028Member" xlink:label="dsgx_TaxYear2028Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2028Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2029Member" xlink:label="dsgx_TaxYear2029Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2029Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2030Member" xlink:label="dsgx_TaxYear2030Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2030Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_AfterTaxYear2026Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IndefiniteYearMember" xlink:label="dsgx_IndefiniteYearMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_IndefiniteYearMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="dsgx_IncomeTaxDisclosureTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_OperatingLossCarryforwards" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDefaultDetails" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations Default (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xlink:type="extended" xlink:title="42002 - Disclosure - Other Charges - Restructuring Provision (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_FacilityClosingMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2024RestructuringPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2025RestructuringPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserve" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsForRestructuring" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xlink:type="extended" xlink:title="42003 - Disclosure - Other Charges - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2024RestructuringPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2025RestructuringPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" xlink:label="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" xlink:type="extended" xlink:title="42201 - Disclosure - Segmented Information - Breakdown of Measures of Profit (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SingleReportableSegmentMember" xlink:label="dsgx_SingleReportableSegmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentDomain" xlink:to="dsgx_SingleReportableSegmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:label="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LaborAndRelatedExpense" xlink:label="us-gaap_LaborAndRelatedExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="us-gaap_LaborAndRelatedExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostOfRevenuesAndNetworkCharges" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="dsgx_CostOfRevenuesAndNetworkCharges" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostMaintenance" xlink:label="us-gaap_CostMaintenance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="us-gaap_CostMaintenance" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SegmentReportingOtherSegmentItemAmount" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="dsgx_SegmentReportingOtherSegmentItemAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="us-gaap_Depreciation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses" xlink:label="us-gaap_CostsAndExpenses" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="us-gaap_CostsAndExpenses" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_OperatingIncomeLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_InterestExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_InvestmentAndOtherIncome" xlink:label="dsgx_InvestmentAndOtherIncome" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="dsgx_InvestmentAndOtherIncome" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" xlink:label="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_OtherCostAndExpenseOperating" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" xlink:label="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xlink:type="extended" xlink:title="42202 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_StatementGeographicalAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_EMEAMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_AsiaPacificMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xlink:type="extended" xlink:title="42203 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ProductOrServiceAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ServiceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ProductsAndServicesDomain" xlink:to="dsgx_ProfessionalServicesAndOtherMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_LicenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xlink:type="extended" xlink:title="42204 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="srt_StatementGeographicalAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_EMEAMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_AsiaPacificMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="us-gaap_NoncurrentAssets" priority="1" use="optional" />
  </definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>13
<FILENAME>dsgx-20250131_lab.xml
<DESCRIPTION>EX-101.LAB
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.9.0.3 -->
<!--Based on XBRL 2.1-->
<!--Created on: 3/5/2025 10:04:39 PM-->
<!--Modified on: 3/5/2025 10:04:39 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt">
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentInformationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Information [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Information [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Type</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Period End Date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Registrant Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Central Index Key</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Fiscal Year End Date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Fiscal Year Focus</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Fiscal Period Focus</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amendment Flag</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONSOLIDATED BALANCE SHEETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT ASSETS</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and Cash Equivalents, at Carrying Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AccountsReceivableNetAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts receivable (net)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts receivable (net)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, after Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade (Note 5)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade accounts receivable, net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherReceivablesNetCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables, Net, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other (Note 6)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid Expense and Other Assets, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other (Note 7)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL CURRENT ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Assets, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OTHER LONG-TERM ASSETS (Note 19)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PROPERTY AND EQUIPMENT, NET (Note 8)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Right-of-Use Asset</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">RIGHT-OF-USE ASSETS (Note 13)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets, Net (Excluding Goodwill)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INTANGIBLE ASSETS, NET (Note 9)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at end of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at beginning of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GOODWILL (Note 10)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities and Equity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LIABILITIES AND SHAREHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT LIABILITIES</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT LIABILITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Payable, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities (Note 11)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease obligations (Note 13)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Income Taxes, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income taxes payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueCurrent" xlink:to="us-gaap_DeferredRevenueCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Revenue, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue (Note 19)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL CURRENT LIABILITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LEASE OBLIGATIONS (Note 13)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueNoncurrent" xlink:to="us-gaap_DeferredRevenueNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Revenue, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredRevenueNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED REVENUE (Note 19)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Income Taxes, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME TAXES PAYABLE</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Liabilities, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL LIABILITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders Equity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SHAREHOLDERS' EQUITY (Note 15)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Value, Issued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares - unlimited shares authorized; Shares issued and outstanding totaled 85,605,969 at January 31, 2025 (January 31, 2024 - 85,183,455)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional Paid in Capital, Common Stock</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional paid-in capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated Other Comprehensive Income (Loss), Net of Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated other comprehensive loss</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings (Accumulated Deficit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained earnings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity Attributable to Parent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, end of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, beginning of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL SHAREHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities and Equity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL LIABILITIES AND SHAREHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorizedUnlimited" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorizedUnlimited" xlink:to="us-gaap_CommonStockSharesAuthorizedUnlimited_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares Authorized, Unlimited [Fixed List]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares - Shares authorized (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares, Issued</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares - Shares issued (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares, Outstanding</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, end of year (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, beginning of year (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares - Shares outstanding (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONSOLIDATED STATEMENTS OF OPERATIONS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue From Contract With Customer Including Assessed Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">REVENUES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost Of Goods And Services Sold</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COST OF REVENUES (exclusive of amortization presented separately below)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross Profit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GROSS MARGIN</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostsAndExpensesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs And Expenses [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CostsAndExpensesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">EXPENSES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Selling And Marketing Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sales and marketing</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and administrative expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and administrative</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_OtherCostAndExpenseOperating_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Cost and Expense, Operating</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other charges (Note 20)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other charges, total</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other charges (Note 20)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization Of Intangible Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of intangible assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpenses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Expenses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">TOTAL EXPENSES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Income (Loss)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME FROM OPERATIONS</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income from operations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INTEREST EXPENSE</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest expense</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_InvestmentAndOtherIncome" xlink:label="dsgx_InvestmentAndOtherIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_InvestmentAndOtherIncome" xlink:to="dsgx_InvestmentAndOtherIncome_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_InvestmentAndOtherIncome_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of investment income and other income.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_InvestmentAndOtherIncome_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Investment and Other Income</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_InvestmentAndOtherIncome_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INVESTMENT AND OTHER INCOME</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_InvestmentAndOtherIncome_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Investment and other income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income before income taxes</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME BEFORE INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Expense (Benefit), Continuing Operations [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME TAX EXPENSE (RECOVERY) (Note 18)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current income tax expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred tax expense (recovery)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Income (Loss)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Income</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">NET INCOME</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">EARNINGS PER SHARE (Note 16)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earning Per Share (Basic)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic (in $ per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earning per share, Basic</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earning Per Share (Diluted)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted (in $ per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earning per share, Diluted</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number Of Shares Outstanding [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number of Shares Outstanding, Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average shares outstanding (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Number of Shares Outstanding, Diluted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average common and common equivalent shares outstanding (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Comprehensive Income Loss Tax [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other comprehensive income (loss):</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation adjustment, net of income tax (recovery) expense of $1,094 for the year ended January 31, 2024 (January 31, 2023 - ($58); January 31, 2022 - ($348)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation adjustment, net of income tax (recovery) expense of $(391) for the year ended January 31, 2025 (January 31, 2024 - $1,094; January 31, 2023 - ($58))</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Comprehensive Income (Loss), Net of Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total other comprehensive income (loss)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Comprehensive income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation adjustment, net of income tax (recovery) expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Components [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityComponentDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Component [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional Paid In Capital [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional paid-in capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated Other Comprehensive Income [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated other comprehensive income (loss)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained earnings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StatementLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense (Note 17)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Issued During Period, Value, Stock Options Exercised</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock options and share units exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other comprehensive income (loss), net of income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Operating Activities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OPERATING ACTIVITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments to reconcile net income to cash provided by operating activities:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Depreciation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_Depreciation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Depreciation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Noncash Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense (Note 17)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncashIncomeExpense" xlink:to="us-gaap_OtherNoncashIncomeExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Noncash Income (Expense)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other non-cash operating activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Capital</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in operating assets and liabilities (Note 21)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in operating assets and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Operating Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash provided by operating activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INVESTING ACTIVITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additions to property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Businesses, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition of subsidiaries, net of cash acquired (Note 3)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Investing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash used in investing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">FINANCING ACTIVITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments of Debt Issuance Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment of debt issuance costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Issuance of Common Stock</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of common shares for cash, net of issuance costs (Note 15)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment, Tax Withholding, Share-Based Payment Arrangement</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment of withholding taxes on net share settlements</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to satisfy employee tax withholding net share settlements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment of contingent consideration</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earn-out arrangements accrued at the time of acquisition</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Financing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash used in financing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of foreign exchange rate changes on cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (decrease) in cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, end of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, beginning of year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Cash Flow Information [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental disclosure of cash flow information:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes Paid, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid during the year for income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Description of the Business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Description and Basis of Presentation [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Description of the Business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant Accounting Policies [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Disclosures [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_ReceivablesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Accounts Receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Accounts Receivable</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="dsgx_OtherReceivablesDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesDisclosureAbstract" xlink:to="dsgx_OtherReceivablesDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherReceivablesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">No definition available.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherReceivablesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesTextBlock" xlink:to="dsgx_OtherReceivablesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherReceivablesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The entire disclosure for other receivables.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherReceivablesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OtherReceivablesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid Expenses and Other</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock" xlink:label="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock" xlink:to="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The entire disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid Expenses And Other Current Assets [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid Expenses and Other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="dsgx_GoodwillDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_GoodwillDisclosureAbstract" xlink:to="dsgx_GoodwillDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_GoodwillDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill Disclosure [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_GoodwillDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillDisclosureTextBlock" xlink:to="us-gaap_GoodwillDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="us-gaap_AccruedLiabilitiesCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Leases [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:label="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">N/A</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments, Contingencies and Guarantees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:to="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments Contingencies and Guarantees [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments, Contingencies and Guarantees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity Note Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-Based Compensation Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-Based Compensation Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Balances, Performance Obligations and Contract Costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Balances, Performance Obligations and Contract Costs.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Balances, Performance Obligations and Contract Costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="us-gaap_OtherIncomeAndExpensesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_OtherIncomeAndExpensesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncomeAndExpensesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Charges.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="us-gaap_SupplementalCashFlowElementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_SupplementalCashFlowElementsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowElementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Cash Flow Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Flow, Supplemental Disclosures [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Cash Flow Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Accounting, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidation, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of consolidation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign Currency Transactions and Translations Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Use of Estimates, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Use of estimates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and Cash Equivalents, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value of Financial Instruments, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Financial instruments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Provision for Credit Losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment of long-lived assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and Intangible Assets, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Leases [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contract with Customer [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue recognition</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research, Development, and Computer Software, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Payment Arrangement [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combinations Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business combinations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New Accounting Pronouncements, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recently issued accounting pronouncements</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:to="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of accumulated depreciation of property, plant and equipment useful life.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation of Property, Plant and Equipment Useful Life [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of depreciation of property, plant and equipment</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of assets, excluding financial assets and goodwill, amortization of useful life.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Amortization Finite-Lived Intangible Assets [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of amortization of intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of preliminary purchase price allocation for businesses acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of acquired intangible assets are being amortized over their estimated useful lives</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Information [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of business acquisition on pro forma information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Derivative Assets at Fair Value [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of financial instruments measured at fair value on recurring basis</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in fair value measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of trade accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in provision for credit losses</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesTableTextBlock" xlink:to="dsgx_OtherReceivablesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherReceivablesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of other receivables.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherReceivablesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OtherReceivablesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of other receivables</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xlink:to="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Goodwill [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Accrued Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease, Cost [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of operating lease expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of maturities for operating lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_ScheduleOfStockByClassTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockByClassTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Stock by Class [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ClassOfStockLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfStockLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Class of Stock [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ClassOfStockLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Common Stock Outstanding Roll Forward [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of common shares outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of computation of basic and diluted earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of weighted-average assumptions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Option, Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of stock option activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Nonvested Share Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of unvested stock options activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of performance share units activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of restricted share units activity</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of cash settled under restricted share units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule Of Cash Settled Restricted Share Unit Plan Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of cash settled restricted share unit plan activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Income before Income Tax, Domestic and Foreign</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components income tax of expense (recovery)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of deferred tax assets and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of effective income tax rate reconciliation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of Operating Loss Carryforwards [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of unrecognized tax benefits roll forward</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Contract Asset, Contract Liability, and Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of the changes in the contract assets balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringPlanAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Plan [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="us-gaap_RestructuringPlanDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringPlanDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Plan [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Fiscal2024RestructuringPlanMember" xlink:to="dsgx_Fiscal2024RestructuringPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Fiscal2024RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the Fiscal 2024 Restructuring Plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Fiscal2024RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2024 Restructuring Plan [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_Fiscal2024RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2024 Restructuring Plan</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Fiscal2025RestructuringPlanMember" xlink:to="dsgx_Fiscal2025RestructuringPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Fiscal2025RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information relating to the entity's  Fiscal 2025 restructuring plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Fiscal2025RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2025 Restructuring Plan [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_Fiscal2025RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2025 Restructuring Plan</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Other Operating Cost and Expense, by Component [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of other charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Restructuring Reserve by Type of Cost [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in restructuring plan</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of cash flow changes in operating asset and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Segment Reporting Information, by Segment [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of segment breakdown of measures of profit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of disaggregated revenue information by geographic location of customer and revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from External Customers by Products and Services [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of disaggregated revenue information by product and services</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets by Major Class [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Major Class Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer Relationships [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer agreements and relationships</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ExistingTechnologyMember" xlink:to="dsgx_ExistingTechnologyMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ExistingTechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information about existing technology.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ExistingTechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existing Technology [member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ExistingTechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existing technologies</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TradeNamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Names [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TradeNamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade names</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncompeteAgreementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Noncompete Agreements [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NoncompeteAgreementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-compete covenants</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statistical Measurement [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statistical Measurement [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MinimumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Minimum [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_MinimumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Minimum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MaximumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_MaximumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Lived Tangible Asset [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Lived Tangible Asset [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComputerEquipmentMember" xlink:to="us-gaap_ComputerEquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComputerEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Computer Equipment [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ComputerEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Computer equipment and software</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesMember" xlink:to="us-gaap_FurnitureAndFixturesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Furniture and Fixtures [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FurnitureAndFixturesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Furniture and fixtures</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseholdImprovementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leasehold Improvements [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LeaseholdImprovementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leasehold improvements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquipmentMember" xlink:to="us-gaap_EquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equipment [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equipment installed with customers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Award Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Award Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Option [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock options</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Stock Options</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PerformanceSharesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance Shares [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PerformanceSharesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSU</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restricted Stock Units (RSUs) [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">RSU</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitPlanMember" xlink:to="dsgx_DeferredShareUnitPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">A plan with deferred share units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Unit Plan [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DSU</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_DeferredShareUnitPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred share unit plan</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Title of Individual [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Title of Individual [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DirectorsAndOfficersMember" xlink:to="dsgx_DirectorsAndOfficersMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DirectorsAndOfficersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Titles of individuals' stock options.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DirectorsAndOfficersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Directors and Officers [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DirectorsAndOfficersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Director's and officer's</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gain (Loss), Foreign Currency Transaction, before Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency re-measurement loss</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillImpairmentLoss" xlink:to="us-gaap_GoodwillImpairmentLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Impairment Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GoodwillImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill impairment loss</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Useful Life</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquired intangible assets estimated useful lives (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Useful Life</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment useful life (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant, and Equipment, Useful Life, Term, Description [Extensible Enumeration]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs to obtain a contract with a customer, period of benefit including renewals (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based compensation arrangement by share-based payment award, award vesting period (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based compensation arrangement by share-based payment award, expiration period (Year)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BaseAnnualFeePercent" xlink:to="dsgx_BaseAnnualFeePercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BaseAnnualFeePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The base annual fee percentage required for Directors participating in a share-based compensation plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BaseAnnualFeePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base Annual Fee Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_BaseAnnualFeePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base annual fee, percent</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units Vesting Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash settled restricted share units, vesting period (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business Acquisitions, by Acquisition [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Acquiree [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NetChbLlcMember" xlink:to="dsgx_NetChbLlcMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_NetChbLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent the member information pertaining to Net CHB, LLC.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_NetChbLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net CHB, LLC [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_NetChbLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net CHB, LLC</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_FoxtrotMember" xlink:to="dsgx_FoxtrotMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_FoxtrotMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent the member information pertaining to Foxtrot.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_FoxtrotMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foxtrot [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_FoxtrotMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foxtrot</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsTechnologyLlcMember" xlink:label="dsgx_XpsTechnologyLlcMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_XpsTechnologyLlcMember" xlink:to="dsgx_XpsTechnologyLlcMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_XpsTechnologyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to XPS Technology LLC.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_XpsTechnologyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Xps Technology Llc [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_XpsTechnologyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">XPS</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SupplyVisionMember" xlink:to="dsgx_SupplyVisionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SupplyVisionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to supply vision.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SupplyVisionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supply Vision [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_SupplyVisionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supply Vision</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_GroundcloudMember" xlink:to="dsgx_GroundcloudMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_GroundcloudMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent the member information pertaining to GroundCloud.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_GroundcloudMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GroundCloud</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_GroundcloudMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GroundCloud</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_LocalzPtyLtdMember" xlink:to="dsgx_LocalzPtyLtdMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_LocalzPtyLtdMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent the member information pertaining to Localz Pty Ltd.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_LocalzPtyLtdMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Localz</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_LocalzPtyLtdMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Localz Pty Ltd</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025AcquisitionsMember" xlink:label="dsgx_Fiscal2025AcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Fiscal2025AcquisitionsMember" xlink:to="dsgx_Fiscal2025AcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Fiscal2025AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to Fiscal 2025 Acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Fiscal2025AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2025 Acquisitions [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_Fiscal2025AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2025 acquisitions</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OcrServicesIncMember" xlink:to="dsgx_OcrServicesIncMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OcrServicesIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to OCR Services, Inc</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OcrServicesIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OCR Services, Inc [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OcrServicesIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OCR</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AerospaceSoftwareDevelopmentsMember" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Aerospace Software Developments.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aerospace Software Developments [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ASD</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BoxtopTechnologiesLimitedMember" xlink:to="dsgx_BoxtopTechnologiesLimitedMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to BoxTop Technologies Limited.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BoxTop Technologies Limited [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BoxTop</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_MyCarrierPortalMember" xlink:to="dsgx_MyCarrierPortalMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_MyCarrierPortalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to My Carrier Portal ("MCP") also known as Assure Assist Inc.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_MyCarrierPortalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">My Carrier Portal [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_MyCarrierPortalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">MCP</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Seller Cloud LLC and Seller Cloud Europe Ltd, collectively known as Seller Cloud.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Seller Cloud LLC And Seller Cloud Europe Ltd. [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sellercloud</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Seller-cloud</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, net of cash acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, net of cash acquired related to acquisition</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition purchase price, net of cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment for Contingent Consideration Liability, Investing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration paid out of investing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum potential performance-based contingent consideration</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum potential performance-based contingent consideration</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period for revenue performance targets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period for revenue performance targets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued contingent acquisition consideration</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Acquired Receivables Gross Contractual Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross contractual amount of trade receivables acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Acquired Receivable, Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value of acquired trade receivables</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Acquired Receivables Estimated Uncollectible</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimate of contractual cash flows not expected to be collected</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Acquisition Related Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition-related costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Pro Forma Information Revenue Of Acquire Since Acquisition Date Actual</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of revenue recognized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of net income recognized</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_XpsMember" xlink:to="dsgx_XpsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_XpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent the member information pertaining to XPS.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_XpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">XPS [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_XpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">XPS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business acquisition cost of acquired entity working capital adjustments.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition Cost Of Acquired Entity Working Capital Adjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net working capital adjustments (receivable) / payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Purchase price consideration</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Net [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Allocated to:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current assets, excluding cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred income tax asset</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred income tax asset</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of right-of-use assets acquired at the acquisition date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Right-of-use Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Right-of-use assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other long-term assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Deferred Revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Asset Acquired And Liability Assumed Operating Lease Obligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Deferred Tax Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred income tax liability</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Recognized Identifiable Tangible Assets Acquired And Liabilities Assumed Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net tangible assets (liabilities) assumed</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-lived intangible assets acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-lived intangible assets acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Acquired from Acquisition</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Net Income (Loss)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Earnings Per Share, Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Earnings Per Share, Diluted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurement Inputs and Valuation Techniques [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Statement Location [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Statement Location [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and Administrative Expense [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and administrative expenses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and administrative</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input, Long-term Revenue Growth Rate [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue growth rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputDiscountRateMember" xlink:label="us-gaap_MeasurementInputDiscountRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputDiscountRateMember" xlink:to="us-gaap_MeasurementInputDiscountRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputDiscountRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input, Discount Rate [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_MeasurementInputDiscountRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Discount rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurement Inputs and Valuation Techniques [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of shares held by certain derivative instruments entered into by the company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument, Shares of Common Stock Held</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity derivatives, number of common shares held (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The per share amount of common shares held by certain derivative instruments entered into by the company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument, Common Shares Held, Per Share</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative, common shares weighted average price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExpensesAndRecoveriesNet" xlink:label="dsgx_ExpensesAndRecoveriesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ExpensesAndRecoveriesNet" xlink:to="dsgx_ExpensesAndRecoveriesNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ExpensesAndRecoveriesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of expenses (recovery) related to operating expenses in the operation statement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ExpensesAndRecoveriesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expenses and Recoveries, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ExpensesAndRecoveriesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expense (recovery)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration, Liability, Measurement Input</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated fair value consideration percentage</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PaymentForContingentConsiderationLiabilityTotal" xlink:label="dsgx_PaymentForContingentConsiderationLiabilityTotal" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PaymentForContingentConsiderationLiabilityTotal" xlink:to="dsgx_PaymentForContingentConsiderationLiabilityTotal_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PaymentForContingentConsiderationLiabilityTotal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of cash outflow made for the settlement of contingent consideration liability related to business combinations of the entity during the reporting period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PaymentForContingentConsiderationLiabilityTotal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment for Contingent Consideration Liability, Total</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_PaymentForContingentConsiderationLiabilityTotal_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration paid</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment for Contingent Consideration Liability, Operating Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration paid out of cash flow from operating activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instruments and Hedging Activities Disclosures [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Hierarchy and NAV [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Hierarchy and NAV [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Inputs, Level 2 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueInputsLevel2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Level 2</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel3Member" xlink:to="us-gaap_FairValueInputsLevel3Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Inputs, Level 3 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Level 3</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instruments and Hedging Activities Disclosures [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssets" xlink:to="us-gaap_DerivativeAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Asset</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DerivativeAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity derivative contracts</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value measurements in Level 3 of the fair value inputs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at the end</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at the beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase from acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Charges through profit or loss</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) From Effect Of Movements In Foreign Exchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, before Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less: Provision for credit losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Ending Balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Beginning Balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnbilledReceivablesCurrent" xlink:to="us-gaap_UnbilledReceivablesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnbilledReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled Receivables, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_UnbilledReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PercentageOfAccountReceivable" xlink:label="dsgx_PercentageOfAccountReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PercentageOfAccountReceivable" xlink:to="dsgx_PercentageOfAccountReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PercentageOfAccountReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent of percentage item</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PercentageOfAccountReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the percentage of accounts receivable.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_PercentageOfAccountReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of account receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Credit Loss Expense (Reversal)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current period provision for expected losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss, Writeoff</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Write-offs charged against the provision</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent the amount of effects of foreign exchange currency movement against the allowance.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable Allowance for Credit Loss Effects of Foreign Exchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Assets, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount recoverable from funds held In escrow related to acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amounts Recoverable from Funds Held in Escrow</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amounts Recoverable from Funds Held in Escrow - Net working capital adjustments receivable from acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid Expense, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetsCurrent" xlink:label="us-gaap_DerivativeAssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssetsCurrent" xlink:to="us-gaap_DerivativeAssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Asset, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DerivativeAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity derivative contracts (Note 4)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration" xlink:label="us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration" xlink:to="us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Asset, Current, Statement of Financial Position [Extensible Enumeration]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InventoryNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Table]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EquipmentInstalledWithCustomersMember" xlink:to="dsgx_EquipmentInstalledWithCustomersMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to equipment installed with customers.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equipment Installed With Customers [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equipment installed with customers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetUnderConstructionMember" xlink:to="us-gaap_AssetUnderConstructionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetUnderConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asset under Construction [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetUnderConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets under construction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated depreciation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DevelopedTechnologyRightsMember" xlink:to="us-gaap_DevelopedTechnologyRightsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Developed Technology Rights [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existing technology</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Accumulated Amortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated amortization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets, net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2029</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2030</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Thereafter</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_ScheduleOfGoodwillTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Goodwill [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Acquired During Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition of goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Translation and Purchase Accounting Adjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments on account of foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee-related Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued compensation and benefits</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedProfessionalFeesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Professional Fees, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued professional fees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Accrued Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Long-term Debt Instruments [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Facility [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Facility [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_RevolvingOperatingCreditFacilityMember" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to a revolving operating credit facility for general corporate purposes including the financing of ongoing working capital needs and acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revolving Operating Credit Facility [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revolving credit facility</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SeniorSecuredCreditFacilityMember" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the senior secured credit facility.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Senior Secured Credit Facility [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Senior secured credit facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableRateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Rate [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableRateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Rate [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the Canada or US prime rate, Bankers' Acceptance (BA) or London Interbank Offered Rate (LIBOR).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Canada or US Prime Rate, BA, or LIBOR [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CDOR</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Maximum Borrowing Capacity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of credit facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTerm" xlink:to="us-gaap_DebtInstrumentTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maturity term (year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Basis Spread on Variable Rate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest rates under the revolving operating portion</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of undrawn amounts (in percentage)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Line of Credit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term line of credit drawn amount</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Remaining Borrowing Capacity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Available for use</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letters of Credit Outstanding, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letters of credit outstanding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeaseDescriptionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Lease, Description [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Lease, Description [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Remaining Lease Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease remaining lease term (year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Renewal Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease renewal term (year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Short-Term Lease, Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Short-term lease cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease, Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total operating lease cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Payments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating cash outflows from operating leases included in measurement of lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Right-of-Use Asset Obtained in Exchange for Operating Lease Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New right-of-use assets obtained in exchange for lease obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OperatingLeaseWeightedAverageRemainingLeaseTerm1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average remaining lease term (years)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Weighted Average Discount Rate, Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average discount rate (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year One</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2029</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2030</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total lease payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less: imputed interest</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total lease obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_LossContingenciesTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingencies [Table]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" xlink:label="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" xlink:to="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to Supply Vision, GroundCloud, MCP and Sellercloud.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supply Vision GroundCloud MCP And Sellercloud [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supply Vision, GroundCloud, MCP And Sellercloud</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency Nature [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_LossContingencyNatureDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingencyNatureDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingency, Nature [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" xlink:label="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" xlink:to="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Information of the consideration payable by the entity that is contingent upon the satisfaction of the performance criteria as agreed upon under the business combination agreements.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Agreements, Performance Based Consideration [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business combination agreements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingenciesLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingencies [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LossContingenciesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments, Contingencies and Guarantees</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The deferred share units nonvested, total compensation cost not yet recognized.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Non-vested Total Compensation Cost Not Yet Recognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized aggregate liability for the unvested DSUs</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cash settled restricted share units nonvested, total compensation cost not yet recognized.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units Non-vested Total Compensation Cost Not Yet Recognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized aggregate liability for the unvested CRSUs</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of common shares for which there is a deferred share unit liability.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Unit Liability, Number of Common Shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DSU liability, number of common shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sale of Stock [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sale of Stock [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BaseShelfProspectus2024Member" xlink:label="dsgx_BaseShelfProspectus2024Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BaseShelfProspectus2024Member" xlink:to="dsgx_BaseShelfProspectus2024Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BaseShelfProspectus2024Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the 2024 Base Shelf Prospectus.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BaseShelfProspectus2024Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base Shelf Prospectus 2024 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BaseShelfProspectus2024Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2024 Base Shelf Prospectus</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusMember" xlink:to="dsgx_ShelfProspectusMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the short-form base shelf prospectus entered into by the company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2022 Base Shelf Prospectus [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2022 Base Shelf Prospectus</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PSUsAndRSUsMember" xlink:to="dsgx_PSUsAndRSUsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PSUsAndRSUsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to PSUs and RSUs.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PSUsAndRSUsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSUs and RSUs [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_PSUsAndRSUsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSU and RSU</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_PSUsAndRSUsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restricted stock and Performance share</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusPeriod" xlink:to="dsgx_ShelfProspectusPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShelfProspectusPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The duration of the shelf prospectus.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShelfProspectusPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shelf Prospectus Period (Month)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShelfProspectusPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shelf prospectus period (month)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of common shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock issued during period, shares, new issues (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Stock Options Exercised</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from stock options exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee tax withholding for net share settlements</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of shares issued from the exercise of stock options and share units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock options and share units exercised (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Earnings Per Share, Basic, by Common Class, Including Two Class Method [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StockOptionsTreasuryStockMethodMember" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the treasury stock.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Options, Treasury Stock Method [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Treasury stock method</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_EarningsPerShareBasicLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasicLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareBasicLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive securities excluded from computation of earnings per share, amount (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dilutive effect of employee stock options (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dilutive effect of employee stock options (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plan Name [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plan Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents Company's shareholder approved stock option plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shareholder-Approved Stock Options Plan [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shareholder-approved stock options plan</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitMember" xlink:label="dsgx_CashSettledRestrictedShareUnitMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitMember" xlink:to="dsgx_CashSettledRestrictedShareUnitMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash-Settled Restricted Share Unit [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash-Settled Restricted Share Unit [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash-settled restricted share unit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-Based Compensation Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount before allocation of valuation allowances of deferred tax asset</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax benefit realized in connection with stock options exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Stock Options Outstanding (in shares), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Stock Options Outstanding (in shares), Beginning</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of stock options outstanding (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of shares available for grant (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total unrecognized compensation cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average period (year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Grant-date fair value of options (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average grant-date fair value of options (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intrinsic value of options</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value other than options (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsOutstandingNumber" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of outstanding deferred share units as of the reported date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Outstanding Number (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred share units outstanding number (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred compensation share-based arrangements, liability, current and noncurrent</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsGrantsInPeriod" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of deferred share units granted in period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Grants In Period (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred share units grants in period (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of deferred share units redeemed and settled in cash.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Redeemed and Settled in Cash (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred share units redeemed and settled in cash (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Compensation Arrangement with Individual, Allocated Share-Based Compensation Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred share based compensation expense</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cash settled restricted share units compensation expense.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units Compensation Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash settled restricted share units compensation expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range of Exercise Prices, Lower Limit (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range of exercise prices, lower limit (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range of Exercise Prices, Upper Limit (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range of exercise prices, upper limit (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfSalesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost of Sales [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CostOfSalesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost of revenues</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpenseMember" xlink:to="us-gaap_SellingAndMarketingExpenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Selling and Marketing Expense [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sales and marketing</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and Development Expense [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect on net income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected volatility (%)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected volatility (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Risk-free rate (%)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Risk-free rate (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected option life (years) (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected option life (years)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Exercise Price (in dollars per share), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Exercise Price (in dollars per share), Beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life (years)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average remaining contractual life (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average remaining contractual life (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, aggregate intrinsic value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, aggregate intrinsic value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average remaining contractual life (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average remaining contractual life (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, aggregate intrinsic value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, aggregate intrinsic value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Options Outstanding (in shares), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Options Outstanding (in shares), Beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding (in shares), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding (in shares), Beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Granted Date Fair Value (in dollars per share), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Granted Date Fair Value (in dollars per share), Beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual, PSU (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual (years)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value, PSU</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of PSUs Granted (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSUs Granted (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">RSUs Granted (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSUs Granted, weighted-average granted date fair value (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">RSUs Granted, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance units issued (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance units issued (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the weighted average grant date fair value of units issued during the period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance units issued, weighted-average granted date fair value (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance units issued, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, number of units (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, number of units (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, PSU weighted-average granted date fair value (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average remaining contractual (years)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, Aggregate Intrinsic Value, PSU</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, aggregate intrinsic value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, RSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, RSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsOutstandingNumber" xlink:to="dsgx_CRSUAwardsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of CRSU awards outstanding.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding, CRSU (in shares), Ending</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding, CRSU (in shares),Beginning</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The weighted average remaining contractual life of CRSU awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life, CRSU (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life, CRSU (years)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsGrantsInPeriod" xlink:to="dsgx_CRSUAwardsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of CRSU grants in period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Granted, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Granted, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsVestedAndSettledInCash" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of CRSU awards vested and settled in cash.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Vested and settled in cash, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Vested and settled in cash, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsForfeitedInPeriod" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to CRSU awards forfeited in period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Forfeited, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Forfeited, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardNonvestedNumber" xlink:to="dsgx_CRSUAwardNonvestedNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of nonvested CRSU awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-vested, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CRSUAwardNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-vested, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The weighted average remaining contractual life of nonvested CRSU awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (years)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="dsgx_IncomeTaxDisclosureTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncomeTaxDisclosureTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">N/A</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncomeTaxDisclosureTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Disclosure [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_CA" xlink:to="country_CA_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="country_CA_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Canada</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="country_CA_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Canada</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_US" xlink:to="country_US_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="country_US_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">United States</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="country_US_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">United States</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherCountriesMember" xlink:to="dsgx_OtherCountriesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherCountriesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents other countries.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherCountriesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Countries [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OtherCountriesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other countries</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="dsgx_IncomeTaxDisclosureLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncomeTaxDisclosureLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">N/A</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncomeTaxDisclosureLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Disclosure [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_IncomeTaxDisclosureLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities not currently deductible</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsAccumulatedLosses" xlink:label="dsgx_DeferredTaxAssetsAccumulatedLosses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsAccumulatedLosses" xlink:to="dsgx_DeferredTaxAssetsAccumulatedLosses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxAssetsAccumulatedLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount before allocation of valuation allowances of deferred tax asset attributable to accumulated losses.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxAssetsAccumulatedLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Accumulated Losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredTaxAssetsAccumulatedLosses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Difference between tax and accounting basis of property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development expenditures and tax credits</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred income tax assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Difference between tax and accounting basis of intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Other</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Temporary difference on equity derivative and related party debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Liabilities, Gross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred income tax liabilities</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount before allocation of valuation allowances of deferred tax assets.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets Net Before Valuation Allowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net deferred income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Valuation Allowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation allowance</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsLiabilitiesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitiesNet1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsLiabilitiesNet1" xlink:to="dsgx_DeferredTaxAssetsLiabilitiesNet1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxAssetsLiabilitiesNet1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxAssetsLiabilitiesNet1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets Liabilities Net1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredTaxAssetsLiabilitiesNet1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net deferred income taxes, net of valuation allowance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Combined basic Canadian statutory rates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense based on the above rates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Permanent differences</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of differences between Canadian and foreign tax rates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of rate changes on current year timing differences</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Prior Year Income Taxes, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in estimates relating to prior periods</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (decrease) in accruals for uncertain tax positions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation allowance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research tax credits</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Other Adjustments, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other, including foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority, Name [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InternalRevenueServiceIRSMember" xlink:to="us-gaap_InternalRevenueServiceIRSMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InternalRevenueServiceIRSMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">United States.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InternalRevenueServiceIRSMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">United States</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EmeaIncomeTaxAuthorityMember" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents income tax authority for EMEA.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">EMEA Region</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">EMEA</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information related to Asia Pacific income tax authority</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asia Pacific Region</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asia Pacific</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCountryMember" xlink:to="us-gaap_ForeignCountryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ForeignCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign Tax Authority [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ForeignCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign tax authority</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DomesticCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Domestic Tax Authority [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DomesticCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Domestic tax authority</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxPeriodAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Period [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxPeriodDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxPeriodDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Period [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2026Member" xlink:to="dsgx_TaxYear2026Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to tax year 2026.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_TaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2027Member" xlink:label="dsgx_TaxYear2027Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2027Member" xlink:to="dsgx_TaxYear2027Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2027Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to related to tax year 2027.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2027Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2027 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_TaxYear2027Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2028Member" xlink:label="dsgx_TaxYear2028Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2028Member" xlink:to="dsgx_TaxYear2028Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2028Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to related to tax year 2028.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2028Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2028 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_TaxYear2028Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2029Member" xlink:label="dsgx_TaxYear2029Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2029Member" xlink:to="dsgx_TaxYear2029Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2029Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to related to tax year 2029.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2029Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2029 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_TaxYear2029Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2029</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2030Member" xlink:label="dsgx_TaxYear2030Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2030Member" xlink:to="dsgx_TaxYear2030Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2030Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to related to tax year 2030.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2030Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Year 2030 [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_TaxYear2030Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2030</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AfterTaxYear2026Member" xlink:to="dsgx_AfterTaxYear2026Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AfterTaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to after tax year 2026.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AfterTaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Thereafter</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_AfterTaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Thereafter</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IndefiniteYearMember" xlink:label="dsgx_IndefiniteYearMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IndefiniteYearMember" xlink:to="dsgx_IndefiniteYearMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IndefiniteYearMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to indefinite tax year.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IndefiniteYearMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Indefinite Year [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_IndefiniteYearMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Indefinite</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwards" xlink:to="us-gaap_OperatingLossCarryforwards_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating loss carryforwards</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability for Uncertainty in Income Taxes, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability, end of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability, beginning of year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross increases - current period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lapsing due to statutes of limitations</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeBeforeTaxesPercent" xlink:to="dsgx_IncomeBeforeTaxesPercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncomeBeforeTaxesPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense expressed as a percentage of income before taxes.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncomeBeforeTaxesPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Before Taxes Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_IncomeBeforeTaxesPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of income before income taxes</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CurrentIncomeTaxRateContinuingOperations" xlink:label="dsgx_CurrentIncomeTaxRateContinuingOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CurrentIncomeTaxRateContinuingOperations" xlink:to="dsgx_CurrentIncomeTaxRateContinuingOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CurrentIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CurrentIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Income Tax Rate Continuing Operations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CurrentIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of current income tax expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Undistributed Earnings of Foreign Subsidiaries</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Undistributed Earnings of Foreign Subsidiaries</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized tax benefits that would impact effective tax rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant change in unrecognized tax benefits is reasonably possible, amount of unrecorded benefit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Ending balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Beginning balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recognition of previously deferred revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recognition of previously deferred revenue</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferral of revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferral of revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases from business combinations, net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases from business combinations, net</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign exchange.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNet" xlink:to="us-gaap_ContractWithCustomerAssetNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, after Allowance for Credit Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Ending balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Beginning balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, Reclassified to Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Transfers to trade receivables from contract assets</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) in the contract asset recognized as revenue during the period, net of amounts transferred to trade receivables.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract With Customer Asset Increase Decrease for Revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) to the contract asset during the period attributable to the effect of movements in foreign exchange.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligation, amount</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligation, percentage</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligation, period (month)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedContractCostNet" xlink:to="us-gaap_CapitalizedContractCostNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedContractCostNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized Contract Cost, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CapitalizedContractCostNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized contract cost, net, total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedContractCostAmortization" xlink:to="us-gaap_CapitalizedContractCostAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedContractCostAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized Contract Cost, Amortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CapitalizedContractCostAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized contract cost, amortization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration accretion and adjustments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring on plans</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_RestructuringCostAndReserveAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringCostAndReserveAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_TypeOfRestructuringDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TypeOfRestructuringDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Type of Restructuring [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeSeveranceMember" xlink:to="us-gaap_EmployeeSeveranceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeSeveranceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Severance [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeSeveranceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Workforce Reduction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FacilityClosingMember" xlink:to="us-gaap_FacilityClosingMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FacilityClosingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Facility Closing [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FacilityClosingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Office Closures</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserve" xlink:to="us-gaap_RestructuringReserve_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringReserve_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Reserve</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_RestructuringReserve_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_RestructuringReserve_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accruals and adjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accruals and adjustments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRestructuring" xlink:to="us-gaap_PaymentsForRestructuring_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForRestructuring_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments for Restructuring</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsForRestructuring_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash draw downs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveTranslationAdjustment" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Reserve Translation Adjustment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-cash draw downs and foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" xlink:label="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" xlink:to="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring and Related Cost, Cost Incurred to Date</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring cost incurred to date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring and related cost, expected cost remaining</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accounts Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Other Receivables</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Prepaid Expense and Other Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accounts Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accrued Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Income Taxes</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income taxes payable</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The amount of increase (decrease) in operating lease liabilities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Lease Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Segment Reporting Information, by Segment [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_StatementBusinessSegmentsAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segments [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentDomain" xlink:to="us-gaap_SegmentDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segments [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SingleReportableSegmentMember" xlink:label="dsgx_SingleReportableSegmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SingleReportableSegmentMember" xlink:to="dsgx_SingleReportableSegmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SingleReportableSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information relating to the entity's single reportable segment.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SingleReportableSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Single Reportable Segment [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_SingleReportableSegmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Single reportable segment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Reporting Information [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contract with Customer, Excluding Assessed Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenues</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:label="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:to="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Reporting Information, Operating Income (Loss) [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LaborAndRelatedExpense" xlink:label="us-gaap_LaborAndRelatedExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LaborAndRelatedExpense" xlink:to="us-gaap_LaborAndRelatedExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LaborAndRelatedExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Labor and Related Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LaborAndRelatedExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Headcount-related costs, including stock compensation expense</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostOfRevenuesAndNetworkCharges" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CostOfRevenuesAndNetworkCharges" xlink:to="dsgx_CostOfRevenuesAndNetworkCharges_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The aggregate cost of goods produced and sold and services rendered including network charges  during the reporting period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost Of Revenues And Network Charges</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost of revenues and network charges (exclusive of other items presented separately)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostMaintenance" xlink:label="us-gaap_CostMaintenance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostMaintenance" xlink:to="us-gaap_CostMaintenance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostMaintenance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost, Maintenance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CostMaintenance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SaaS software and maintenance</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SegmentReportingOtherSegmentItemAmount" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SegmentReportingOtherSegmentItemAmount" xlink:to="dsgx_SegmentReportingOtherSegmentItemAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Reporting, Other Segment Item, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other segment items</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses" xlink:label="us-gaap_CostsAndExpenses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostsAndExpenses" xlink:to="us-gaap_CostsAndExpenses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostsAndExpenses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs and Expenses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CostsAndExpenses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total expenses</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" xlink:label="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" xlink:to="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of expense for award under share-based payment arrangement including the taxes related to such expenses during the reporting period. Excludes amount capitalized.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Based Compensation Expense And Related Taxes</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation and related taxes</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" xlink:label="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" xlink:to="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The adjusted portion of profit or loss for the period, before interests, income taxes, depreciation and amortization which is attributable to the entity for the reporting period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjusted Earnings Before Interest, Tax, Depreciation And Amortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjusted EBITDA</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StatementGeographicalAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_SegmentGeographicalDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EMEAMember" xlink:to="us-gaap_EMEAMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EMEAMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Europe, Middle-East and Africa</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EMEAMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Europe, Middle-East and Africa</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_AsiaPacificMember" xlink:to="srt_AsiaPacificMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_AsiaPacificMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asia Pacific</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_AsiaPacificMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asia Pacific</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductOrServiceAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product and Service [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductsAndServicesDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product and Service [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ServiceMember" xlink:to="us-gaap_ServiceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ServiceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Service</label>
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ProfessionalServicesAndOtherMember" xlink:to="dsgx_ProfessionalServicesAndOtherMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ProfessionalServicesAndOtherMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to items categorized as Professional Services and Other.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ProfessionalServicesAndOtherMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Professional services and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LicenseMember" xlink:to="us-gaap_LicenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LicenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">License</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenues from External Customers and Long-Lived Assets [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncurrentAssets" xlink:to="us-gaap_NoncurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical long-lived assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical long-lived assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Reportable Segments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of reportable segments</label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>14
<FILENAME>dsgx-20250131_pre.xml
<DESCRIPTION>EX-101.PRE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<!--XBRL document created with Toppan Merrill Bridge  10.9.0.3 -->
<!--Based on XBRL 2.1-->
<!--Created on: 3/5/2025 10:04:39 PM-->
<!--Modified on: 3/5/2025 10:04:39 PM-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DocumentDocumentAndEntityInformation" roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedBalanceSheetsParentheticals" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfShareholdersEquity" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureDescriptionOfBusiness" roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureBasisOfPresentation" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitions" roleURI="http://www.descartes.com/role/DisclosureAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurements" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureTradeAccountsReceivable" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherReceivables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePrepaidExpensesAndOther" roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePropertyAndEquipment" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIntangibleAssets" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureGoodwill" roleURI="http://www.descartes.com/role/DisclosureGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAccruedLiabilities" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLongTermDebt" roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeases" roleURI="http://www.descartes.com/role/DisclosureLeases" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureCommitmentsContingenciesAndGuarantees" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureShareCapital" roleURI="http://www.descartes.com/role/DisclosureShareCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureEarningsPerShare" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlans" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxes" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherCharges" roleURI="http://www.descartes.com/role/DisclosureOtherCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSupplementalCashFlowInformation" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformation" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureBasisOfPresentationPolicies" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureBasisOfPresentationTables" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsTables" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsTables" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureTradeAccountsReceivableTables" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherReceivablesTables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePrepaidExpensesAndOtherTables" roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePropertyAndEquipmentTables" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIntangibleAssetsTables" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureGoodwillTables" roleURI="http://www.descartes.com/role/DisclosureGoodwillTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAccruedLiabilitiesTables" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesTables" roleURI="http://www.descartes.com/role/DisclosureLeasesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureShareCapitalTables" roleURI="http://www.descartes.com/role/DisclosureShareCapitalTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureEarningsPerShareTables" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansTables" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesTables" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesTables" roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSupplementalCashFlowInformationTables" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationTables" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureBasisOfPresentationDetails" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAcquisitionsProFormaResultsOfOperationsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureTradeAccountsReceivableDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureTradeAccountsReceivableTradeReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherReceivablesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePrepaidExpensesAndOtherDetails" roleURI="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIntangibleAssetsAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureGoodwillDetails" roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLongTermDebtDetails" roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureCommitmentsContingenciesAndGuaranteesDetails" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureShareCapitalDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureShareCapitalCommonSharesOutstandingDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureIncomeTaxesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesRestructuringProvisionDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureOtherChargesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20250131.xsd#DisclosureSegmentedInformationAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <presentationLink xlink:role="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xlink:type="extended" xlink:title="00090 - Document - Document And Entity Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentInformationTable" xlink:label="DocumentInformationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems_638768090763892220" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="dei_DocumentType_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_DocumentType_638768090763892220" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_DocumentPeriodEndDate_638768090763892220" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_EntityRegistrantName_638768090763892220" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_EntityCentralIndexKey_638768090763892220" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_CurrentFiscalYearEndDate_638768090763892220" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus_638768090763892220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_DocumentFiscalYearFocus_638768090763892220" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_DocumentFiscalPeriodFocus_638768090763902217" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_638768090763892220" xlink:to="dei_AmendmentFlag_638768090763902217" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract_638768090763902217" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_AssetsCurrentAbstract_638768090763902217" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638768090763902217" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_638768090763902217" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_638768090763902217" xlink:to="us-gaap_AccountsReceivableNetAbstract_638768090763902217" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_638768090763902217" xlink:to="us-gaap_AccountsReceivableNetCurrent_638768090763902217" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_638768090763902217" xlink:to="us-gaap_OtherReceivablesNetCurrent_638768090763902217" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638768090763902217" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_638768090763902217" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638768090763902217" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_638768090763902217" xlink:to="us-gaap_AssetsCurrent_638768090763912219" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_OtherAssetsNoncurrent_638768090763912219" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_638768090763912219" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_638768090763912219" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_638768090763912219" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_638768090763912219" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_Goodwill_638768090763912219" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_638768090763902217" xlink:to="us-gaap_Assets_638768090763912219" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" xlink:to="us-gaap_AccountsPayableCurrent_638768090763922219" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" xlink:to="us-gaap_AccruedLiabilitiesCurrent_638768090763922219" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_638768090763922219" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_638768090763922219" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" xlink:to="us-gaap_DeferredRevenueCurrent_638768090763922219" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_638768090763912219" xlink:to="us-gaap_LiabilitiesCurrent_638768090763922219" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090763922219" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent_638768090763922219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_DeferredRevenueNoncurrent_638768090763922219" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_638768090763932219" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_638768090763932219" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_Liabilities_638768090763932219" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_CommitmentsAndContingencies_638768090763932219" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_StockholdersEquityAbstract_638768090763932219" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_638768090763932219" xlink:to="us-gaap_CommonStockValue_638768090763932219" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_638768090763932219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_638768090763932219" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_638768090763932219" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_638768090763942222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_638768090763932219" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_638768090763942222" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_638768090763942222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_638768090763932219" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_638768090763942222" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638768090763942222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_638768090763932219" xlink:to="us-gaap_StockholdersEquity_638768090763942222" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_638768090763942222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_638768090763912219" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_638768090763942222" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" xlink:type="extended" xlink:title="00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorizedUnlimited" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited_638768090763942222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesAuthorizedUnlimited_638768090763942222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesIssued_638768090763952242" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesOutstanding_638768090763952242" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090763952242" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold_638768090763952242" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_GrossProfit_638768090763952242" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract_638768090763952242" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_SellingAndMarketingExpense_638768090763952242" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_ResearchAndDevelopmentExpense_638768090763952242" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_GeneralAndAdministrativeExpense_638768090763952242" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_638768090763952242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_OtherCostAndExpenseOperating_638768090763952242" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638768090763962219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638768090763962219" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses_638768090763962219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_OperatingExpenses_638768090763962219" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_638768090763962219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_OperatingIncomeLoss_638768090763962219" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_638768090763962219" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_InterestExpense_638768090763962219" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_InvestmentAndOtherIncome" xlink:label="dsgx_InvestmentAndOtherIncome_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="dsgx_InvestmentAndOtherIncome_638768090763992226" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_638768090763952242" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090763992226" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_638768090763992226" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_638768090763992226" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_638768090763992226" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_638768090763992226" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090763992226" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_638768090763992226" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638768090763992226" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_638768090763992226" xlink:to="us-gaap_NetIncomeLoss_638768090763992226" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_638768090763992226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_638768090763992226" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_638768090764002224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_638768090763992226" xlink:to="us-gaap_EarningsPerShareBasic_638768090764002224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted_638768090764002224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_638768090763992226" xlink:to="us-gaap_EarningsPerShareDiluted_638768090764002224" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638768090764002224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638768090764002224" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638768090764002224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638768090764002224" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638768090764002224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638768090764002224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_638768090764002224" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638768090764002224" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090764002224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_NetIncomeLoss_638768090764002224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_638768090764012225" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_638768090764012225" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_638768090764012225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_638768090764012225" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_638768090764012225" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_638768090764012225" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_638768090764012225" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" xlink:type="extended" xlink:title="00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_638768090764012225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" xlink:title="00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable_638768090764012225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis_638768090764012225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764012225" xlink:to="us-gaap_StatementEquityComponentsAxis_638768090764012225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638768090764012225" xlink:to="us-gaap_CommonStockMember_638768090764022228" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638768090764012225" xlink:to="us-gaap_AdditionalPaidInCapitalMember_638768090764022228" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638768090764012225" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_638768090764022228" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638768090764012225" xlink:to="us-gaap_RetainedEarningsMember_638768090764022228" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_638768090764012225" xlink:to="us-gaap_EquityComponentDomain_638768090764022228" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764012225" xlink:to="us-gaap_StatementLineItems_638768090764022228" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764022228" xlink:to="us-gaap_StockholdersEquity_638768090764022228" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764022228" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_638768090764022228" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764022228" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_638768090764022228" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764022228" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_638768090764022228" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090764022228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764022228" xlink:to="us-gaap_NetIncomeLoss_638768090764022228" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764022228" xlink:to="us-gaap_StockholdersEquity_638768090764032236" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_NetIncomeLoss_638768090764032236" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_Depreciation_638768090764032236" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638768090764032236" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_ShareBasedCompensation_638768090764032236" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_OtherNoncashIncomeExpense_638768090764032236" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090764032236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090764032236" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_638768090764042220" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_638768090764032236" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_638768090764042220" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_638768090764042220" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_638768090764042220" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_638768090764042220" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_638768090764042220" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_638768090764042220" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_638768090764042220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_638768090764042220" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638768090764052225" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638768090764052225" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_638768090764042220" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_638768090764052225" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_638768090764052225" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_638768090764052225" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_638768090764052225" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_6387680907640522251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_6387680907640522251" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_638768090764052225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_638768090764052225" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet_638768090764062223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract_638768090764052225" xlink:to="us-gaap_IncomeTaxesPaidNet_638768090764062223" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xlink:type="extended" xlink:title="10101 - Disclosure - Description of the Business" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_638768090764062223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_638768090764062223" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentation" xlink:type="extended" xlink:title="10201 - Disclosure - Basis of Presentation" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_638768090764062223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_638768090764062223" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitions" xlink:type="extended" xlink:title="10301 - Disclosure - Acquisitions" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_638768090764072301" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_638768090764072301" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurements" xlink:type="extended" xlink:title="10401 - Disclosure - Fair Value Measurements" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock_638768090764072301" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock_638768090764072301" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xlink:type="extended" xlink:title="10501 - Disclosure - Trade Accounts Receivable" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="ReceivablesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_638768090764072301" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_638768090764072301" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivables" xlink:type="extended" xlink:title="10601 - Disclosure - Other Receivables" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="OtherReceivablesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock_638768090764082229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherReceivablesDisclosureAbstract" xlink:to="dsgx_OtherReceivablesTextBlock_638768090764082229" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther" xlink:type="extended" xlink:title="10701 - Disclosure - Prepaid Expenses and Other" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock" xlink:label="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock_638768090764082229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock_638768090764082229" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xlink:type="extended" xlink:title="10801 - Disclosure - Property and Equipment" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_638768090764082229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_638768090764082229" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssets" xlink:type="extended" xlink:title="10901 - Disclosure - Intangible Assets" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_638768090764092224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_638768090764092224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureGoodwill" xlink:type="extended" xlink:title="11001 - Disclosure - Goodwill" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="GoodwillDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock_638768090764092224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillDisclosureAbstract" xlink:to="us-gaap_GoodwillDisclosureTextBlock_638768090764092224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilities" xlink:type="extended" xlink:title="11101 - Disclosure - Accrued Liabilities" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="AccruedLiabilitiesCurrentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_638768090764092224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccruedLiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_638768090764092224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLongTermDebt" xlink:type="extended" xlink:title="11201 - Disclosure - Long-Term Debt" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock_638768090764092224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock_638768090764092224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeases" xlink:type="extended" xlink:title="11301 - Disclosure - Leases" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_638768090764102222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_638768090764102222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" xlink:type="extended" xlink:title="11401 - Disclosure - Commitments, Contingencies and Guarantees" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:label="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_638768090764102222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_638768090764102222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapital" xlink:type="extended" xlink:title="11501 - Disclosure - Share Capital" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_638768090764102222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_638768090764102222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShare" xlink:type="extended" xlink:title="11601 - Disclosure - Earnings Per Share" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock_638768090764112225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock_638768090764112225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" xlink:type="extended" xlink:title="11701 - Disclosure - Stock-Based Compensation Plans" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_638768090764112225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_638768090764112225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxes" xlink:type="extended" xlink:title="11801 - Disclosure - Income Taxes" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_638768090764122231" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_638768090764122231" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xlink:type="extended" xlink:title="11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_638768090764122231" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_638768090764122231" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherCharges" xlink:type="extended" xlink:title="12001 - Disclosure - Other Charges" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_638768090764122231" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_638768090764122231" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xlink:type="extended" xlink:title="12101 - Disclosure - Supplemental Cash Flow Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="SupplementalCashFlowElementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_638768090764132225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock_638768090764132225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformation" xlink:type="extended" xlink:title="12201 - Disclosure - Segmented Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_638768090764132225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_638768090764132225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xlink:type="extended" xlink:title="20202 - Disclosure - Basis of Presentation (Policies)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_638768090764132225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_638768090764132225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock_638768090764132225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock_638768090764132225" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_638768090764142224" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates_638768090764142224" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_638768090764142224" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_638768090764142224" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_638768090764142224" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock_638768090764142224" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_638768090764142224" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_638768090764142224" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_638768090764142224" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_638768090764142224" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_638768090764142224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_638768090764142224" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_638768090764152227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_638768090764152227" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_638768090764152227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_638768090764152227" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy_638768090764152227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy_638768090764152227" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_638768090764152227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_638768090764152227" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_638768090764152227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_638768090764152227" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_638768090764152227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_638768090764152227" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" xlink:type="extended" xlink:title="30203 - Disclosure - Basis of Presentation (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_638768090764162220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_638768090764162220" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_638768090764162220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_638768090764162220" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsTables" xlink:type="extended" xlink:title="30303 - Disclosure - Acquisitions (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_638768090764162220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_638768090764162220" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_638768090764162220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_638768090764162220" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_638768090764162220" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_638768090764162220" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xlink:type="extended" xlink:title="30403 - Disclosure - Fair Value Measurements (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_638768090764172225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_638768090764172225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_638768090764172225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_638768090764172225" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xlink:type="extended" xlink:title="30503 - Disclosure - Trade Accounts Receivable (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="ReceivablesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_638768090764172225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_638768090764172225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_638768090764172225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_638768090764172225" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xlink:type="extended" xlink:title="30603 - Disclosure - Other Receivables (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="OtherReceivablesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock_638768090764182224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherReceivablesDisclosureAbstract" xlink:to="dsgx_OtherReceivablesTableTextBlock_638768090764182224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables" xlink:type="extended" xlink:title="30703 - Disclosure - Prepaid Expenses and Other (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_638768090764182224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_1" xlink:to="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_638768090764182224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xlink:type="extended" xlink:title="30803 - Disclosure - Property and Equipment (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_638768090764182224" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_638768090764182224" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xlink:type="extended" xlink:title="30903 - Disclosure - Intangible Assets (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_638768090764192225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_638768090764192225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureGoodwillTables" xlink:type="extended" xlink:title="31003 - Disclosure - Goodwill (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="GoodwillDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_638768090764192225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_638768090764192225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xlink:type="extended" xlink:title="31103 - Disclosure - Accrued Liabilities (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="AccruedLiabilitiesCurrentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_638768090764192225" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccruedLiabilitiesCurrentAbstract" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_638768090764192225" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesTables" xlink:type="extended" xlink:title="31303 - Disclosure - Leases (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock_638768090764202312" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LeaseCostTableTextBlock_638768090764202312" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_638768090764202312" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_638768090764202312" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalTables" xlink:type="extended" xlink:title="31503 - Disclosure - Share Capital (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_638768090764202312" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract_1" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_638768090764202312" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareTables" xlink:type="extended" xlink:title="31603 - Disclosure - Earnings Per Share (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_638768090764212242" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" xlink:type="extended" xlink:title="31703 - Disclosure - Stock-Based Compensation Plans (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_638768090764212242" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_638768090764212242" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_638768090764212242" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_638768090764212242" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_638768090764212242" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_638768090764212242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_638768090764212242" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_638768090764222240" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesTables" xlink:type="extended" xlink:title="31803 - Disclosure - Income Taxes (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_638768090764222240" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_638768090764222240" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_638768090764222240" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_638768090764222240" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_638768090764222240" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_638768090764222240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_638768090764222240" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xlink:type="extended" xlink:title="31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_638768090764232369" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_638768090764232369" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesTables" xlink:type="extended" xlink:title="32003 - Disclosure - Other Charges (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638768090764232369" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_StatementTable_638768090764232369" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis_638768090764232369" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764232369" xlink:to="us-gaap_RestructuringPlanAxis_638768090764232369" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain_638768090764232369" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis_638768090764232369" xlink:to="us-gaap_RestructuringPlanDomain_638768090764232369" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember_638768090764232369" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_638768090764232369" xlink:to="dsgx_Fiscal2024RestructuringPlanMember_638768090764232369" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember_638768090764232369" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_638768090764232369" xlink:to="dsgx_Fiscal2025RestructuringPlanMember_638768090764232369" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638768090764242308" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764232369" xlink:to="us-gaap_StatementLineItems_638768090764242308" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_638768090764242308" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764242308" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_638768090764242308" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_638768090764242308" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764242308" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_638768090764242308" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xlink:type="extended" xlink:title="32103 - Disclosure - Supplemental Cash Flow Information (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="SupplementalCashFlowElementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_638768090764242308" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_638768090764242308" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xlink:type="extended" xlink:title="32203 - Disclosure - Segmented Information (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_638768090764252236" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_638768090764252236" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_638768090764252236" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_638768090764252236" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xlink:type="extended" xlink:title="40201 - Disclosure - Basis of Presentation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_1" xlink:to="us-gaap_StatementTable_638768090764252236" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764252236" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764252236" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764252236" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764252236" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764252236" xlink:to="us-gaap_CustomerRelationshipsMember_638768090764252236" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_638768090764252236" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764252236" xlink:to="dsgx_ExistingTechnologyMember_638768090764252236" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764252236" xlink:to="us-gaap_TradeNamesMember_638768090764262274" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764252236" xlink:to="us-gaap_NoncompeteAgreementsMember_638768090764262274" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764252236" xlink:to="srt_RangeAxis_638768090764262274" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638768090764262274" xlink:to="srt_RangeMember_638768090764262274" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764262274" xlink:to="srt_MinimumMember_638768090764262274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764262274" xlink:to="srt_MaximumMember_638768090764262274" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764252236" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_638768090764262274" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_638768090764262274" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764262274" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764262274" xlink:to="us-gaap_ComputerEquipmentMember_638768090764262274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember_638768090764262274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764262274" xlink:to="us-gaap_FurnitureAndFixturesMember_638768090764262274" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764262274" xlink:to="us-gaap_LeaseholdImprovementsMember_638768090764272336" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764262274" xlink:to="us-gaap_EquipmentMember_638768090764272336" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764252236" xlink:to="us-gaap_AwardTypeAxis_638768090764272336" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_638768090764272336" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764272336" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764272336" xlink:to="us-gaap_EmployeeStockOptionMember_638768090764272336" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764272336" xlink:to="us-gaap_PerformanceSharesMember_638768090764272336" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764272336" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_638768090764272336" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764272336" xlink:to="dsgx_DeferredShareUnitPlanMember_638768090764272336" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis_638768090764272336" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764252236" xlink:to="srt_TitleOfIndividualAxis_638768090764272336" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis_638768090764272336" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain_638768090764282290" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain_638768090764282290" xlink:to="dsgx_DirectorsAndOfficersMember_638768090764282290" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090764252236" xlink:to="us-gaap_StatementLineItems_638768090764282290" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_638768090764282290" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_GoodwillImpairmentLoss_638768090764282290" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_638768090764282290" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_638768090764282290" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_638768090764282290" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration_638768090764292221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration_638768090764292221" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_638768090764292221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_638768090764292221" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_638768090764292221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_638768090764292221" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_638768090764292221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_638768090764292221" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent_638768090764292221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="dsgx_BaseAnnualFeePercent_638768090764292221" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_638768090764292221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090764282290" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_638768090764292221" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40301 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764302233" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764302233" xlink:to="us-gaap_BusinessAcquisitionAxis_638768090764302233" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638768090764302233" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_NetChbLlcMember_638768090764302233" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_FoxtrotMember_638768090764302233" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsTechnologyLlcMember" xlink:label="dsgx_XpsTechnologyLlcMember_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_XpsTechnologyLlcMember_638768090764302233" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember_638768090764302233" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_SupplyVisionMember_638768090764302233" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember_638768090764352344" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_GroundcloudMember_638768090764352344" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_LocalzPtyLtdMember_638768090764362288" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025AcquisitionsMember" xlink:label="dsgx_Fiscal2025AcquisitionsMember_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_Fiscal2025AcquisitionsMember_638768090764362288" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_OcrServicesIncMember_638768090764362288" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764362288" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_BoxtopTechnologiesLimitedMember_638768090764362288" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_MyCarrierPortalMember_638768090764362288" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764302233" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764362288" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764302233" xlink:to="us-gaap_BusinessAcquisitionLineItems_638768090764362288" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638768090764362288" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_638768090764362288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities_638768090764362288" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_638768090764372229" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_638768090764372229" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764372229" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_638768090764372229" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_638768090764372229" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_638768090764372229" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_638768090764372229" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_638768090764372229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_638768090764372229" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764362288" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_638768090764382241" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xlink:type="extended" xlink:title="40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764382241" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764382241" xlink:to="us-gaap_BusinessAcquisitionAxis_638768090764382241" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638768090764382241" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_NetChbLlcMember_638768090764382241" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_FoxtrotMember_638768090764382241" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_XpsMember_638768090764382241" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember_638768090764382241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_SupplyVisionMember_638768090764382241" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_OcrServicesIncMember_638768090764392348" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764392348" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_BoxtopTechnologiesLimitedMember_638768090764392348" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_MyCarrierPortalMember_638768090764392348" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764392348" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_LocalzPtyLtdMember_638768090764392348" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764382241" xlink:to="dsgx_GroundcloudMember_638768090764392348" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764382241" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764392348" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764392348" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764392348" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_638768090764392348" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764392348" xlink:to="us-gaap_CustomerRelationshipsMember_638768090764392348" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764392348" xlink:to="dsgx_ExistingTechnologyMember_638768090764402281" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764392348" xlink:to="us-gaap_TradeNamesMember_638768090764402281" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764392348" xlink:to="us-gaap_NoncompeteAgreementsMember_638768090764402281" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764382241" xlink:to="us-gaap_BusinessAcquisitionLineItems_638768090764402281" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_638768090764402281" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_638768090764402281" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_638768090764402281" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_638768090764402281" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_638768090764402281" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_638768090764412222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_638768090764412222" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets_638768090764412222" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_638768090764412222" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_638768090764412222" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_638768090764412222" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_638768090764412222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation_638768090764412222" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_638768090764422286" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_638768090764422286" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_638768090764422286" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract_638768090764412222" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_638768090764422286" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638768090764422286" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_638768090764422286" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_638768090764422286" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764402281" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_638768090764422286" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xlink:type="extended" xlink:title="40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764432323" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764432323" xlink:to="us-gaap_BusinessAcquisitionAxis_638768090764432323" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638768090764432323" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_NetChbLlcMember_638768090764432323" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_FoxtrotMember_638768090764432323" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_XpsMember_638768090764432323" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_SupplyVisionMember_638768090764432323" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_GroundcloudMember_638768090764432323" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_LocalzPtyLtdMember_638768090764432323" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_OcrServicesIncMember_638768090764432323" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764432323" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764432323" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_BoxtopTechnologiesLimitedMember_638768090764442327" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_MyCarrierPortalMember_638768090764442327" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764432323" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764442327" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764432323" xlink:to="us-gaap_BusinessAcquisitionLineItems_638768090764442327" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764442327" xlink:to="us-gaap_CashAcquiredFromAcquisition_638768090764442327" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xlink:type="extended" xlink:title="40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764442327" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764442327" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764442327" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764442327" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764442327" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764442327" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764442327" xlink:to="us-gaap_CustomerRelationshipsMember_638768090764452261" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764442327" xlink:to="dsgx_ExistingTechnologyMember_638768090764452261" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764442327" xlink:to="us-gaap_TradeNamesMember_638768090764452261" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764442327" xlink:to="us-gaap_NoncompeteAgreementsMember_638768090764452261" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764442327" xlink:to="us-gaap_BusinessAcquisitionAxis_638768090764452261" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638768090764452261" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_NetChbLlcMember_638768090764452261" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_FoxtrotMember_638768090764452261" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_XpsMember_638768090764452261" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionMember" xlink:label="dsgx_SupplyVisionMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_SupplyVisionMember_638768090764452261" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember_638768090764452261" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_GroundcloudMember_638768090764452261" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_LocalzPtyLtdMember_638768090764462244" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_OcrServicesIncMember_638768090764462244" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764462244" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_BoxtopTechnologiesLimitedMember_638768090764462244" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_MyCarrierPortalMember_638768090764462244" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764452261" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764462244" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764442327" xlink:to="srt_RangeAxis_638768090764462244" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638768090764462244" xlink:to="srt_RangeMember_638768090764462244" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638768090764462244" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764462244" xlink:to="srt_MinimumMember_638768090764462244" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638768090764472345" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764462244" xlink:to="srt_MaximumMember_638768090764472345" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_638768090764472345" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_638768090764442327" xlink:to="us-gaap_BusinessAcquisitionLineItems_638768090764472345" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_638768090764472345" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_638768090764472345" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_638768090764472345" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" xlink:type="extended" xlink:title="40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_638768090764472345" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_638768090764472345" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_638768090764482285" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_638768090764482285" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_638768090764482285" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_638768090764482285" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_638768090764482285" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_638768090764482285" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_638768090764482285" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_638768090764482285" xlink:to="us-gaap_IncomeStatementLocationAxis_638768090764482285" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_638768090764482285" xlink:to="us-gaap_IncomeStatementLocationDomain_638768090764482285" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638768090764482285" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_638768090764482285" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_638768090764482285" xlink:to="srt_RangeAxis_638768090764482285" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638768090764482285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638768090764482285" xlink:to="srt_RangeMember_638768090764482285" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764482285" xlink:to="srt_MinimumMember_638768090764492226" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764482285" xlink:to="srt_MaximumMember_638768090764492226" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_638768090764482285" xlink:to="us-gaap_MeasurementInputTypeAxis_638768090764492226" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeAxis_638768090764492226" xlink:to="us-gaap_MeasurementInputTypeDomain_638768090764492226" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_638768090764492226" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_638768090764492226" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MeasurementInputDiscountRateMember" xlink:label="us-gaap_MeasurementInputDiscountRateMember_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_638768090764492226" xlink:to="us-gaap_MeasurementInputDiscountRateMember_638768090764492226" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_638768090764482285" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_638768090764492226" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_638768090764492226" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ExpensesAndRecoveriesNet" xlink:label="dsgx_ExpensesAndRecoveriesNet_638768090764492226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="dsgx_ExpensesAndRecoveriesNet_638768090764492226" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_638768090764502230" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PaymentForContingentConsiderationLiabilityTotal" xlink:label="dsgx_PaymentForContingentConsiderationLiabilityTotal_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="dsgx_PaymentForContingentConsiderationLiabilityTotal_638768090764502230" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_638768090764502230" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_638768090764492226" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_638768090764502230" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xlink:type="extended" xlink:title="40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_638768090764502230" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_638768090764502230" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_638768090764502230" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764502230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_638768090764502230" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764502230" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764502230" xlink:to="us-gaap_FairValueInputsLevel2Member_638768090764512295" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764502230" xlink:to="us-gaap_FairValueInputsLevel3Member_638768090764512295" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_638768090764502230" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_638768090764512295" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_638768090764512295" xlink:to="us-gaap_DerivativeAssets_638768090764512295" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_638768090764512295" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764512295" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_638768090764512295" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_638768090764512295" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_638768090764512295" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_638768090764512295" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764512295" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member_638768090764512295" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_638768090764512295" xlink:to="us-gaap_FairValueInputsLevel3Member_638768090764512295" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_638768090764512295" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_638768090764522270" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_638768090764522270" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_638768090764522270" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_638768090764522270" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_638768090764522270" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_6387680907645222701" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_638768090764522270" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_6387680907645222701" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Trade Accounts Receivable (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract_3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent_638768090764522270" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_3" xlink:to="us-gaap_AccountsReceivableGrossCurrent_638768090764522270" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638768090764532234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_3" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638768090764532234" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_638768090764532234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_3" xlink:to="us-gaap_AccountsReceivableNetCurrent_638768090764532234" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xlink:type="extended" xlink:title="40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent_638768090764532234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_1" xlink:to="us-gaap_UnbilledReceivablesCurrent_638768090764532234" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PercentageOfAccountReceivable" xlink:label="dsgx_PercentageOfAccountReceivable_638768090764532234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_1" xlink:to="dsgx_PercentageOfAccountReceivable_638768090764532234" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" xlink:type="extended" xlink:title="40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638768090764542222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_638768090764542222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_638768090764542222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_638768090764542222" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_638768090764542222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_638768090764542222" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_638768090764542222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_638768090764542222" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_6387680907645422221" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_6387680907645422221" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xlink:type="extended" xlink:title="40601 - Disclosure - Other Receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="dsgx_OtherReceivablesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent_638768090764542222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_OtherReceivablesDisclosureAbstract" xlink:to="us-gaap_OtherAssetsCurrent_638768090764542222" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_638768090764542222" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_OtherReceivablesDisclosureAbstract" xlink:to="us-gaap_OtherReceivablesNetCurrent_638768090764542222" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" xlink:type="extended" xlink:title="40602 - Disclosure - Other Receivables - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="dsgx_OtherReceivablesDisclosureAbstract_1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_638768090764552257" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_OtherReceivablesDisclosureAbstract_1" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow_638768090764552257" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails" xlink:type="extended" xlink:title="40701 - Disclosure - Prepaid Expenses and Other (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent_638768090764552257" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_2" xlink:to="us-gaap_PrepaidExpenseCurrent_638768090764552257" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetsCurrent" xlink:label="us-gaap_DerivativeAssetsCurrent_638768090764552257" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_2" xlink:to="us-gaap_DerivativeAssetsCurrent_638768090764552257" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration" xlink:label="us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration_638768090764552257" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeAssetsCurrent_638768090764552257" xlink:to="us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration_638768090764552257" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_638768090764552257" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_2" xlink:to="us-gaap_InventoryNet_638768090764552257" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638768090764552257" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_2" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_638768090764552257" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_638768090764562282" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_638768090764562282" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_638768090764562282" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_638768090764562282" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" xlink:to="us-gaap_ComputerEquipmentMember_638768090764562282" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" xlink:to="us-gaap_FurnitureAndFixturesMember_638768090764562282" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" xlink:to="us-gaap_LeaseholdImprovementsMember_638768090764562282" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" xlink:to="dsgx_EquipmentInstalledWithCustomersMember_638768090764562282" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_638768090764562282" xlink:to="us-gaap_AssetUnderConstructionMember_638768090764562282" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_638768090764562282" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_638768090764562282" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_638768090764562282" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_638768090764562282" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_638768090764562282" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_638768090764562282" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_638768090764562282" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_638768090764562282" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_638768090764572223" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638768090764572223" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638768090764572223" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764572223" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_638768090764572223" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764572223" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764572223" xlink:to="us-gaap_CustomerRelationshipsMember_638768090764572223" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764572223" xlink:to="us-gaap_DevelopedTechnologyRightsMember_638768090764572223" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764572223" xlink:to="us-gaap_TradeNamesMember_638768090764572223" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_638768090764572223" xlink:to="us-gaap_NoncompeteAgreementsMember_638768090764572223" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_638768090764572223" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_638768090764572223" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_638768090764572223" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_638768090764572223" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_638768090764582228" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_638768090764572223" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_638768090764582228" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_638768090764572223" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_638768090764582228" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xlink:type="extended" xlink:title="40902 - Disclosure - Intangible Assets - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_638768090764582228" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_638768090764582228" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_638768090764582228" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_638768090764582228" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_638768090764582228" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_638768090764592365" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_638768090764592365" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_638768090764592365" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureGoodwillDetails" xlink:type="extended" xlink:title="41001 - Disclosure - Goodwill (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="GoodwillDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable_638768090764592365" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_638768090764592365" xlink:to="us-gaap_BusinessAcquisitionAxis_638768090764592365" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638768090764592365" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_GroundcloudMember" xlink:label="dsgx_GroundcloudMember_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_GroundcloudMember_638768090764592365" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_LocalzPtyLtdMember" xlink:label="dsgx_LocalzPtyLtdMember_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_LocalzPtyLtdMember_638768090764592365" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OcrServicesIncMember" xlink:label="dsgx_OcrServicesIncMember_638768090764592365" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_OcrServicesIncMember_638768090764592365" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AerospaceSoftwareDevelopmentsMember" xlink:label="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_AerospaceSoftwareDevelopmentsMember_638768090764602298" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BoxtopTechnologiesLimitedMember" xlink:label="dsgx_BoxtopTechnologiesLimitedMember_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_BoxtopTechnologiesLimitedMember_638768090764602298" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_MyCarrierPortalMember" xlink:label="dsgx_MyCarrierPortalMember_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_MyCarrierPortalMember_638768090764602298" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member" xlink:label="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764592365" xlink:to="dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member_638768090764602298" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_638768090764592365" xlink:to="us-gaap_GoodwillLineItems_638768090764602298" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_638768090764602298" xlink:to="us-gaap_Goodwill_638768090764602298" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_638768090764602298" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_638768090764602298" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_638768090764602298" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_638768090764602298" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_638768090764602298" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_6387680907646022981" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_638768090764602298" xlink:to="us-gaap_Goodwill_6387680907646022981" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xlink:type="extended" xlink:title="41101 - Disclosure - Accrued Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="us-gaap_AccruedLiabilitiesCurrentAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_638768090764612256" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764612256" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_638768090764612256" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_638768090764612256" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_AccruedLiabilitiesCurrent_638768090764612256" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xlink:type="extended" xlink:title="41201 - Disclosure - Long-Term Debt (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable_638768090764612256" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638768090764612256" xlink:to="us-gaap_CreditFacilityAxis_638768090764612256" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_638768090764612256" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis_638768090764612256" xlink:to="us-gaap_CreditFacilityDomain_638768090764612256" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_638768090764612256" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember_638768090764622238" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_638768090764612256" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_638768090764622238" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638768090764612256" xlink:to="us-gaap_DebtInstrumentAxis_638768090764622238" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_638768090764622238" xlink:to="us-gaap_DebtInstrumentNameDomain_638768090764622238" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_6387680907646222381" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_638768090764622238" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_6387680907646222381" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638768090764612256" xlink:to="srt_RangeAxis_638768090764622238" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638768090764622238" xlink:to="srt_RangeMember_638768090764622238" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764622238" xlink:to="srt_MaximumMember_638768090764622238" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090764622238" xlink:to="srt_MinimumMember_638768090764622238" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638768090764612256" xlink:to="us-gaap_VariableRateAxis_638768090764622238" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_638768090764622238" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis_638768090764622238" xlink:to="us-gaap_VariableRateDomain_638768090764622238" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_638768090764622238" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_638768090764632388" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_638768090764612256" xlink:to="us-gaap_DebtInstrumentLineItems_638768090764632388" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_638768090764632388" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_DebtInstrumentTerm_638768090764632388" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_638768090764632388" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_638768090764632388" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_LineOfCredit_638768090764632388" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_638768090764632388" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_638768090764632388" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_638768090764632388" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_638768090764632388" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="41301 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_638768090764642335" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_638768090764642335" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_638768090764642335" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_638768090764642335" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xlink:type="extended" xlink:title="41302 - Disclosure - Leases - Components of operating lease expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost_638768090764642335" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseCost_638768090764642335" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost_638768090764642335" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_ShortTermLeaseCost_638768090764642335" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost_638768090764642335" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LeaseCost_638768090764642335" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments_638768090764642335" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeasePayments_638768090764642335" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_638768090764652272" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_638768090764652272" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_638768090764652272" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_638768090764652272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_638768090764652272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_638768090764652272" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_638768090764652272" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_638768090764652272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_638768090764652272" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_638768090764662252" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_638768090764662252" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseLiability_638768090764662252" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_638768090764662252" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_638768090764662252" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xlink:type="extended" xlink:title="41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:label="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="us-gaap_LossContingenciesTable_638768090764662252" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638768090764662252" xlink:to="us-gaap_BusinessAcquisitionAxis_638768090764662252" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_638768090764662252" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764662252" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember" xlink:label="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_638768090764662252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_638768090764662252" xlink:to="dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_638768090764662252" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638768090764662252" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_638768090764672329" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis_638768090764672329" xlink:to="us-gaap_LossContingencyNatureDomain_638768090764672329" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember" xlink:label="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain_638768090764672329" xlink:to="dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_638768090764672329" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_638768090764662252" xlink:to="us-gaap_LossContingenciesLineItems_638768090764672329" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_638768090764672329" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_638768090764672329" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_638768090764672329" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_638768090764672329" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_638768090764672329" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_638768090764672329" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764672329" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_638768090764672329" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_638768090764672329" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalDetails" xlink:type="extended" xlink:title="41501 - Disclosure - Share Capital (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="us-gaap_ScheduleOfStockByClassTable_638768090764682283" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable_638768090764682283" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_638768090764682283" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis_638768090764682283" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_638768090764682283" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_BaseShelfProspectus2024Member" xlink:label="dsgx_BaseShelfProspectus2024Member_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_638768090764682283" xlink:to="dsgx_BaseShelfProspectus2024Member_638768090764682283" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_638768090764682283" xlink:to="dsgx_ShelfProspectusMember_638768090764682283" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable_638768090764682283" xlink:to="us-gaap_AwardTypeAxis_638768090764682283" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764682283" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_638768090764682283" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764682283" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764682283" xlink:to="dsgx_PSUsAndRSUsMember_638768090764692234" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable_638768090764682283" xlink:to="us-gaap_ClassOfStockLineItems_638768090764692234" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_638768090764692234" xlink:to="dsgx_ShelfProspectusPeriod_638768090764692234" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_638768090764692234" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_638768090764692234" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_638768090764692234" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_638768090764692234" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_638768090764692234" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_638768090764692234" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638768090764692234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_638768090764692234" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_638768090764692234" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" xlink:type="extended" xlink:title="41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_CommonStockSharesOutstanding_638768090764702240" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_638768090764702240" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_638768090764702240" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_6387680907647022401" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_CommonStockSharesOutstanding_6387680907647022401" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xlink:type="extended" xlink:title="41601 - Disclosure - Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764702240" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764702240" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_638768090764702240" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_638768090764702240" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_638768090764702240" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_638768090764702240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_638768090764702240" xlink:to="us-gaap_EmployeeStockOptionMember_638768090764702240" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_638768090764702240" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember_638768090764712378" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_638768090764702240" xlink:to="dsgx_PSUsAndRSUsMember_638768090764712378" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764702240" xlink:to="us-gaap_EarningsPerShareBasicLineItems_638768090764712378" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764712378" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_638768090764712378" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xlink:type="extended" xlink:title="41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764712378" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764712378" xlink:to="us-gaap_AwardTypeAxis_638768090764712378" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_638768090764712378" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764712378" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_638768090764712378" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764712378" xlink:to="us-gaap_EmployeeStockOptionMember_638768090764712378" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember_638768090764722288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764712378" xlink:to="dsgx_PSUsAndRSUsMember_638768090764722288" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_638768090764712378" xlink:to="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090764722288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" xlink:to="us-gaap_NetIncomeLoss_638768090764722288" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638768090764722288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_638768090764722288" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_638768090764722288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_638768090764722288" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638768090764722288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_638768090764722288" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_638768090764812218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" xlink:to="us-gaap_EarningsPerShareBasic_638768090764812218" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted_638768090764812218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_638768090764722288" xlink:to="us-gaap_EarningsPerShareDiluted_638768090764812218" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xlink:type="extended" xlink:title="41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764812218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764812218" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_638768090764812218" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764812218" xlink:to="us-gaap_PlanNameAxis_638768090764812218" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_638768090764812218" xlink:to="us-gaap_PlanNameDomain_638768090764822227" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_638768090764822227" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember_638768090764822227" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_638768090764822227" xlink:to="dsgx_DeferredShareUnitPlanMember_638768090764822227" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitMember" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_638768090764822227" xlink:to="dsgx_CashSettledRestrictedShareUnitMember_638768090764822227" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764812218" xlink:to="us-gaap_AwardTypeAxis_638768090764822227" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764822227" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764822227" xlink:to="us-gaap_EmployeeStockOptionMember_638768090764822227" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764822227" xlink:to="us-gaap_PerformanceSharesMember_638768090764822227" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764822227" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_638768090764822227" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764812218" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_638768090764822227" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_638768090764822227" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_638768090764822227" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_638768090764832319" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_638768090764832319" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_638768090764832319" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_638768090764832319" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_638768090764832319" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_638768090764832319" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764832319" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_638768090764832319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_638768090764832319" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_638768090764842368" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber_638768090764842368" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_638768090764842368" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod_638768090764842368" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_638768090764842368" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense_638768090764842368" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_638768090764842368" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_638768090764842368" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_638768090764842368" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_638768090764852288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764822227" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_638768090764852288" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xlink:type="extended" xlink:title="41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764852288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764852288" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis_638768090764852288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764852288" xlink:to="us-gaap_IncomeStatementLocationAxis_638768090764852288" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_638768090764852288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_638768090764852288" xlink:to="us-gaap_IncomeStatementLocationDomain_638768090764852288" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember_638768090764852288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638768090764852288" xlink:to="us-gaap_CostOfSalesMember_638768090764852288" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember_638768090764852288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638768090764852288" xlink:to="us-gaap_SellingAndMarketingExpenseMember_638768090764852288" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_638768090764862229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638768090764852288" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_638768090764862229" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_638768090764862229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_638768090764852288" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_638768090764862229" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764862229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764852288" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764862229" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_638768090764862229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764862229" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_638768090764862229" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" xlink:type="extended" xlink:title="41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_638768090764862229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_638768090764862229" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_638768090764862229" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_638768090764862229" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_638768090764872330" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" xlink:type="extended" xlink:title="41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_638768090764872330" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_638768090764872330" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_638768090764872330" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_638768090764872330" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_638768090764872330" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_638768090764872330" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_638768090764872330" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_638768090764882285" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_638768090764882285" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_638768090764882285" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_638768090764882285" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_638768090764882285" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_638768090764882285" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_638768090764882285" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_638768090764882285" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_638768090764882285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_638768090764882285" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_638768090764892240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_638768090764892240" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_638768090764892240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_638768090764892240" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_638768090764892240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_638768090764892240" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_638768090764892240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_638768090764892240" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_638768090764892240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_638768090764892240" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xlink:type="extended" xlink:title="41705 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764892240" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764892240" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764892240" xlink:to="us-gaap_PlanNameAxis_638768090764902324" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_638768090764902324" xlink:to="us-gaap_PlanNameDomain_638768090764902324" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_638768090764902324" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember_638768090764902324" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764892240" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_638768090764902324" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764902324" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_638768090764902324" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764902324" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_638768090764902324" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_638768090764902324" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_638768090764902324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_638768090764902324" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_638768090764912325" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_638768090764912325" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764902324" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764912325" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xlink:type="extended" xlink:title="41706 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764912325" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764912325" xlink:to="us-gaap_AwardTypeAxis_638768090764912325" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_638768090764912325" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764912325" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember_638768090764912325" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764912325" xlink:to="us-gaap_PerformanceSharesMember_638768090764912325" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764912325" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764922285" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764922285" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_638768090764922285" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_638768090764922285" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_638768090764922285" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764922285" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_638768090764922285" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_638768090764922285" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_638768090764922285" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_638768090764922285" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_638768090764932226" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_638768090764932226" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_638768090764932226" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764932226" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764932226" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_638768090764932226" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_638768090764932226" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_638768090764932226" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_638768090764932226" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_638768090764942319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_638768090764942319" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_638768090764942319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_638768090764942319" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_638768090764942319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_638768090764942319" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_638768090764942319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_638768090764942319" order="21" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_638768090764942319" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764922285" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_638768090764942319" order="22" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xlink:type="extended" xlink:title="41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764952287" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764952287" xlink:to="us-gaap_AwardTypeAxis_638768090764952287" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764952287" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_638768090764952287" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_638768090764952287" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764952287" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764952287" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_638768090764952287" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_638768090764952287" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_638768090764952287" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764952287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_638768090764952287" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_638768090764962263" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_638768090764962263" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_638768090764962263" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_638768090764962263" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_638768090764962263" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_638768090764962263" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_638768090764962263" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_638768090764962263" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_638768090764962263" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_638768090764962263" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_638768090764972337" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_638768090764972337" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_638768090764972337" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_638768090764972337" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_638768090764972337" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_638768090764972337" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_638768090764972337" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_638768090764972337" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_638768090764972337" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_638768090764952287" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_638768090764972337" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xlink:type="extended" xlink:title="41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsOutstandingNumber_638768090764982287" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife_638768090764982287" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsGrantsInPeriod_638768090764982287" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash_638768090764982287" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod_638768090764982287" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber_6387680907649822871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsOutstandingNumber_6387680907649822871" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardNonvestedNumber_638768090764982287" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_638768090764982287" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_638768090764982287" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xlink:type="extended" xlink:title="41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_2" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_2" xlink:to="dsgx_IncomeTaxDisclosureTable_638768090764992241" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090764992241" xlink:to="us-gaap_IncomeTaxAuthorityAxis_638768090764992241" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_638768090764992241" xlink:to="us-gaap_IncomeTaxAuthorityDomain_638768090764992241" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090764992241" xlink:to="country_CA_638768090764992241" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090764992241" xlink:to="country_US_638768090764992241" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090764992241" xlink:to="dsgx_OtherCountriesMember_638768090764992241" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090764992241" xlink:to="dsgx_IncomeTaxDisclosureLineItems_638768090764992241" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090764992241" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_638768090764992241" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090764992241" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xlink:type="extended" xlink:title="41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_1" xlink:to="dsgx_IncomeTaxDisclosureTable_638768090765002289" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090765002289" xlink:to="us-gaap_IncomeTaxAuthorityAxis_638768090765002289" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_638768090765002289" xlink:to="us-gaap_IncomeTaxAuthorityDomain_638768090765002289" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090765002289" xlink:to="country_CA_638768090765002289" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090765002289" xlink:to="country_US_638768090765002289" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090765002289" xlink:to="dsgx_OtherCountriesMember_638768090765002289" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090765002289" xlink:to="dsgx_IncomeTaxDisclosureLineItems_638768090765002289" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_638768090765002289" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_638768090765002289" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_638768090765002289" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_638768090765002289" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638768090765002289" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_638768090765002289" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638768090765002289" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_638768090765012239" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsAccumulatedLosses" xlink:label="dsgx_DeferredTaxAssetsAccumulatedLosses_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="dsgx_DeferredTaxAssetsAccumulatedLosses_638768090765012239" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_638768090765012239" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_638768090765012239" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxAssetsGross_638768090765012239" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_638768090765012239" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_638768090765012239" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_638768090765012239" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_638768090765012239" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_638768090765012239" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_638768090765012239" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_DeferredTaxAssetsLiabilitiesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitiesNet1_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_3" xlink:to="dsgx_DeferredTaxAssetsLiabilitiesNet1_638768090765022230" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xlink:type="extended" xlink:title="41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_4" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090765022230" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_638768090765022230" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_638768090765022230" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_638768090765022230" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_638768090765022230" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_638768090765022230" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_638768090765022230" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_638768090765022230" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_638768090765022230" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_638768090765032288" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:label="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationTaxCreditsResearch_638768090765032288" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments_638768090765032288" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_4" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638768090765032288" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xlink:type="extended" xlink:title="41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_5" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_5" xlink:to="dsgx_IncomeTaxDisclosureTable_638768090765032288" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090765032288" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_638768090765032288" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_638768090765032288" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis_638768090765032288" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_638768090765032288" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_638768090765032288" xlink:to="us-gaap_InternalRevenueServiceIRSMember_638768090765042324" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_638768090765032288" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember_638768090765042324" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_638768090765032288" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember_638768090765042324" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090765032288" xlink:to="us-gaap_IncomeTaxAuthorityAxis_638768090765042324" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_638768090765042324" xlink:to="us-gaap_IncomeTaxAuthorityDomain_638768090765042324" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090765042324" xlink:to="us-gaap_ForeignCountryMember_638768090765042324" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_638768090765042324" xlink:to="us-gaap_DomesticCountryMember_638768090765042324" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090765032288" xlink:to="us-gaap_TaxPeriodAxis_638768090765042324" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis_638768090765042324" xlink:to="us-gaap_TaxPeriodDomain_638768090765042324" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_TaxYear2026Member_638768090765042324" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2027Member" xlink:label="dsgx_TaxYear2027Member_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_TaxYear2027Member_638768090765042324" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2028Member" xlink:label="dsgx_TaxYear2028Member_638768090765042324" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_TaxYear2028Member_638768090765042324" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2029Member" xlink:label="dsgx_TaxYear2029Member_638768090765052333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_TaxYear2029Member_638768090765052333" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_TaxYear2030Member" xlink:label="dsgx_TaxYear2030Member_638768090765052333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_TaxYear2030Member_638768090765052333" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member_638768090765052333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_AfterTaxYear2026Member_638768090765052333" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IndefiniteYearMember" xlink:label="dsgx_IndefiniteYearMember_638768090765052333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_638768090765042324" xlink:to="dsgx_IndefiniteYearMember_638768090765052333" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems_638768090765052333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_638768090765032288" xlink:to="dsgx_IncomeTaxDisclosureLineItems_638768090765052333" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards_638768090765052333" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_638768090765052333" xlink:to="us-gaap_OperatingLossCarryforwards_638768090765052333" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" xlink:type="extended" xlink:title="41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_6" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_6" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_638768090765062302" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_6" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_638768090765062302" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_6" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_638768090765062302" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6387680907650623021" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract_6" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6387680907650623021" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="extended" xlink:title="41807 - Disclosure - Income Taxes - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="dsgx_IncomeBeforeTaxesPercent_638768090765062302" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CurrentIncomeTaxRateContinuingOperations" xlink:label="dsgx_CurrentIncomeTaxRateContinuingOperations_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="dsgx_CurrentIncomeTaxRateContinuingOperations_638768090765062302" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries_638768090765062302" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_638768090765062302" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_638768090765062302" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_638768090765062302" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xlink:type="extended" xlink:title="41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_638768090765072234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiability_638768090765072234" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_638768090765072234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_638768090765072234" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_638768090765072234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_638768090765072234" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_638768090765072234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_638768090765072234" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_638768090765072234" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_638768090765072234" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_6387680907650722341" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiability_6387680907650722341" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_638768090765082252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DeferredRevenueCurrent_638768090765082252" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_638768090765082252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_638768090765082252" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_638768090765082252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNet_638768090765082252" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_638768090765082252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_638768090765082252" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue_638768090765082252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue_638768090765082252" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_638768090765082252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_638768090765082252" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_6387680907650822521" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNet_6387680907650822521" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_2" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638768090765092235" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638768090765092235" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_638768090765092235" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_638768090765092235" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638768090765092235" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638768090765092235" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_638768090765092235" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638768090765092235" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_638768090765092235" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_638768090765092235" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_638768090765092235" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails" xlink:type="extended" xlink:title="41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet_638768090765092235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_CapitalizedContractCostNet_638768090765092235" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization_638768090765102235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_CapitalizedContractCostAmortization_638768090765102235" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xlink:type="extended" xlink:title="42001 - Disclosure - Other Charges - Components of Other Charges (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_638768090765102235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_638768090765102235" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638768090765102235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_638768090765102235" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_638768090765102235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_RestructuringCharges_638768090765102235" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_638768090765102235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_OtherCostAndExpenseOperating_638768090765102235" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xlink:type="extended" xlink:title="42002 - Disclosure - Other Charges - Restructuring Provision (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="us-gaap_OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638768090765102235" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_StatementTable_638768090765102235" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090765102235" xlink:to="us-gaap_RestructuringCostAndReserveAxis_638768090765112272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis_638768090765112272" xlink:to="us-gaap_TypeOfRestructuringDomain_638768090765112272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfRestructuringDomain_638768090765112272" xlink:to="us-gaap_EmployeeSeveranceMember_638768090765112272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfRestructuringDomain_638768090765112272" xlink:to="us-gaap_FacilityClosingMember_638768090765112272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090765102235" xlink:to="us-gaap_RestructuringPlanAxis_638768090765112272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis_638768090765112272" xlink:to="us-gaap_RestructuringPlanDomain_638768090765112272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_638768090765112272" xlink:to="dsgx_Fiscal2024RestructuringPlanMember_638768090765112272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_638768090765112272" xlink:to="dsgx_Fiscal2025RestructuringPlanMember_638768090765112272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090765102235" xlink:to="us-gaap_StatementLineItems_638768090765112272" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765112272" xlink:to="us-gaap_RestructuringReserve_638768090765112272" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1_638768090765112272" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765112272" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1_638768090765112272" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765112272" xlink:to="us-gaap_PaymentsForRestructuring_638768090765122262" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765112272" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment_638768090765122262" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765112272" xlink:to="us-gaap_RestructuringReserve_638768090765122262" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xlink:type="extended" xlink:title="42003 - Disclosure - Other Charges - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="us-gaap_OtherIncomeAndExpensesAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherIncomeAndExpensesAbstract_1" xlink:to="us-gaap_StatementTable_638768090765122262" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090765122262" xlink:to="us-gaap_RestructuringPlanAxis_638768090765122262" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis_638768090765122262" xlink:to="us-gaap_RestructuringPlanDomain_638768090765122262" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2024RestructuringPlanMember" xlink:label="dsgx_Fiscal2024RestructuringPlanMember_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_638768090765122262" xlink:to="dsgx_Fiscal2024RestructuringPlanMember_638768090765122262" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_Fiscal2025RestructuringPlanMember" xlink:label="dsgx_Fiscal2025RestructuringPlanMember_638768090765122262" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_638768090765122262" xlink:to="dsgx_Fiscal2025RestructuringPlanMember_638768090765122262" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090765122262" xlink:to="srt_RangeAxis_638768090765132318" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_638768090765132318" xlink:to="srt_RangeMember_638768090765132318" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090765132318" xlink:to="srt_MinimumMember_638768090765132318" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_638768090765132318" xlink:to="srt_MaximumMember_638768090765132318" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_638768090765122262" xlink:to="us-gaap_StatementLineItems_638768090765132318" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostCostIncurredToDate1" xlink:label="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765132318" xlink:to="us-gaap_RestructuringAndRelatedCostCostIncurredToDate1_638768090765132318" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_638768090765132318" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_638768090765132318" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xlink:type="extended" xlink:title="42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="us-gaap_SupplementalCashFlowElementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_638768090765132318" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_638768090765132318" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_638768090765142297" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_638768090765142297" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_638768090765142297" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_638768090765142297" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_638768090765142297" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_638768090765142297" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_638768090765142297" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_638768090765142297" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_638768090765142297" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails" xlink:type="extended" xlink:title="42201 - Disclosure - Segmented Information - Breakdown of Measures of Profit (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765152274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765152274" xlink:to="us-gaap_StatementBusinessSegmentsAxis_638768090765152274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis_638768090765152274" xlink:to="us-gaap_SegmentDomain_638768090765152274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SingleReportableSegmentMember" xlink:label="dsgx_SingleReportableSegmentMember_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentDomain_638768090765152274" xlink:to="dsgx_SingleReportableSegmentMember_638768090765152274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765152274" xlink:to="us-gaap_SegmentReportingInformationLineItems_638768090765152274" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_638768090765152274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract" xlink:label="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LaborAndRelatedExpense" xlink:label="us-gaap_LaborAndRelatedExpense_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="us-gaap_LaborAndRelatedExpense_638768090765152274" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_CostOfRevenuesAndNetworkCharges" xlink:label="dsgx_CostOfRevenuesAndNetworkCharges_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="dsgx_CostOfRevenuesAndNetworkCharges_638768090765152274" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostMaintenance" xlink:label="us-gaap_CostMaintenance_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="us-gaap_CostMaintenance_638768090765152274" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_SegmentReportingOtherSegmentItemAmount" xlink:label="dsgx_SegmentReportingOtherSegmentItemAmount_638768090765152274" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="dsgx_SegmentReportingOtherSegmentItemAmount_638768090765152274" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="us-gaap_Depreciation_638768090765162251" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="us-gaap_AmortizationOfIntangibleAssets_638768090765162251" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAndExpenses" xlink:label="us-gaap_CostsAndExpenses_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract_638768090765152274" xlink:to="us-gaap_CostsAndExpenses_638768090765162251" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_OperatingIncomeLoss_638768090765162251" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_InterestExpense_638768090765162251" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_InvestmentAndOtherIncome" xlink:label="dsgx_InvestmentAndOtherIncome_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="dsgx_InvestmentAndOtherIncome_638768090765162251" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_638768090765162251" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_IncomeTaxExpenseBenefit_638768090765162251" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_638768090765162251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_NetIncomeLoss_638768090765162251" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ShareBasedCompensationExpenseAndRelatedTaxes" xlink:label="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes_638768090765172242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="dsgx_ShareBasedCompensationExpenseAndRelatedTaxes_638768090765172242" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_638768090765172242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="us-gaap_OtherCostAndExpenseOperating_638768090765172242" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization" xlink:label="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization_638768090765172242" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765152274" xlink:to="dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization_638768090765172242" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xlink:type="extended" xlink:title="42202 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765232273" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765232273" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765232273" xlink:to="srt_StatementGeographicalAxis_638768090765242294" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis_638768090765242294" xlink:to="srt_SegmentGeographicalDomain_638768090765242294" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765242294" xlink:to="country_US_638768090765242294" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765242294" xlink:to="us-gaap_EMEAMember_638768090765242294" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765242294" xlink:to="country_CA_638768090765242294" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765242294" xlink:to="srt_AsiaPacificMember_638768090765242294" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765232273" xlink:to="us-gaap_SegmentReportingInformationLineItems_638768090765242294" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090765242294" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765242294" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090765242294" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xlink:type="extended" xlink:title="42203 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765252251" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765252251" xlink:to="srt_ProductOrServiceAxis_638768090765252251" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_638768090765252251" xlink:to="srt_ProductsAndServicesDomain_638768090765252251" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_638768090765252251" xlink:to="us-gaap_ServiceMember_638768090765252251" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20250131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_638768090765252251" xlink:to="dsgx_ProfessionalServicesAndOtherMember_638768090765252251" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_638768090765252251" xlink:to="us-gaap_LicenseMember_638768090765252251" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_638768090765252251" xlink:to="us-gaap_SegmentReportingInformationLineItems_638768090765252251" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090765252251" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_638768090765252251" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_638768090765252251" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xlink:type="extended" xlink:title="42204 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_638768090765262252" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_638768090765262252" xlink:to="srt_StatementGeographicalAxis_638768090765262252" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis_638768090765262252" xlink:to="srt_SegmentGeographicalDomain_638768090765262252" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US" xlink:label="country_US_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765262252" xlink:to="country_US_638768090765262252" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765262252" xlink:to="us-gaap_EMEAMember_638768090765262252" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_CA" xlink:label="country_CA_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765262252" xlink:to="country_CA_638768090765262252" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_638768090765262252" xlink:to="srt_AsiaPacificMember_638768090765262252" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_638768090765262252" xlink:to="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_638768090765262252" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets_638768090765262252" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_638768090765262252" xlink:to="us-gaap_NoncurrentAssets_638768090765262252" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xlink:type="extended" xlink:title="42205 - Disclosure - Segmented Information - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments_638768090765272339" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_NumberOfReportableSegments_638768090765272339" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671624047504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document And Entity Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_DocumentInformationLineItems', window );"><strong>Document Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">6-K<span></span>
</td>
</tr>
<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">Jan. 31,  2025<span></span>
</td>
</tr>
<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">DESCARTES SYSTEMS GROUP INC<span></span>
</td>
</tr>
<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">0001050140<span></span>
</td>
</tr>
<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">--01-31<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2025<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
</tr>
<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>
</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_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_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentInformationLineItems</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_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_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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623564704">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>CURRENT ASSETS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash</a></td>
<td class="nump">$ 236,138<span></span>
</td>
<td class="nump">$ 320,952<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetAbstract', window );"><strong>Accounts receivable (net)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Trade (Note 5)</a></td>
<td class="nump">53,953<span></span>
</td>
<td class="nump">51,569<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherReceivablesNetCurrent', window );">Other (Note 6)</a></td>
<td class="nump">16,931<span></span>
</td>
<td class="nump">12,193<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other (Note 7)</a></td>
<td class="nump">45,544<span></span>
</td>
<td class="nump">33,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_AssetsCurrent', window );">TOTAL CURRENT ASSETS</a></td>
<td class="nump">352,566<span></span>
</td>
<td class="nump">418,182<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">OTHER LONG-TERM ASSETS (Note 19)</a></td>
<td class="nump">24,887<span></span>
</td>
<td class="nump">24,737<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">PROPERTY AND EQUIPMENT, NET (Note 8)</a></td>
<td class="nump">12,481<span></span>
</td>
<td class="nump">11,552<span></span>
</td>
</tr>
<tr class="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 );">RIGHT-OF-USE ASSETS (Note 13)</a></td>
<td class="nump">7,623<span></span>
</td>
<td class="nump">6,257<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">3,802<span></span>
</td>
<td class="nump">2,097<span></span>
</td>
</tr>
<tr class="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 9)</a></td>
<td class="nump">321,270<span></span>
</td>
<td class="nump">251,047<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">GOODWILL (Note 10)</a></td>
<td class="nump">924,755<span></span>
</td>
<td class="nump">760,413<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">1,647,384<span></span>
</td>
<td class="nump">1,474,285<span></span>
</td>
</tr>
<tr class="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">20,650<span></span>
</td>
<td class="nump">17,484<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued liabilities (Note 11)</a></td>
<td class="nump">79,656<span></span>
</td>
<td class="nump">91,824<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Lease obligations (Note 13)</a></td>
<td class="nump">3,178<span></span>
</td>
<td class="nump">3,075<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Income taxes payable</a></td>
<td class="nump">9,313<span></span>
</td>
<td class="nump">6,734<span></span>
</td>
</tr>
<tr class="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 (Note 19)</a></td>
<td class="nump">104,230<span></span>
</td>
<td class="nump">84,513<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">TOTAL CURRENT LIABILITIES</a></td>
<td class="nump">217,027<span></span>
</td>
<td class="nump">203,630<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">LEASE OBLIGATIONS (Note 13)</a></td>
<td class="nump">4,718<span></span>
</td>
<td class="nump">3,903<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueNoncurrent', window );">DEFERRED REVENUE (Note 19)</a></td>
<td class="nump">978<span></span>
</td>
<td class="nump">1,464<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesNoncurrent', window );">INCOME TAXES PAYABLE</a></td>
<td class="nump">5,531<span></span>
</td>
<td class="nump">6,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_DeferredIncomeTaxLiabilitiesNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">34,127<span></span>
</td>
<td class="nump">21,101<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_Liabilities', window );">TOTAL LIABILITIES</a></td>
<td class="nump">262,381<span></span>
</td>
<td class="nump">236,251<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>SHAREHOLDERS' EQUITY (Note 15)</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_CommonStockValue', window );">Common shares - unlimited shares authorized; Shares issued and outstanding totaled 85,605,969 at January 31, 2025 (January 31, 2024 - 85,183,455)</a></td>
<td class="nump">568,339<span></span>
</td>
<td class="nump">551,164<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">503,133<span></span>
</td>
<td class="nump">494,701<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="num">(50,497)<span></span>
</td>
<td class="num">(28,586)<span></span>
</td>
</tr>
<tr class="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 );">Retained earnings</a></td>
<td class="nump">364,028<span></span>
</td>
<td class="nump">220,755<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">1,385,003<span></span>
</td>
<td class="nump">1,238,034<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">$ 1,647,384<span></span>
</td>
<td class="nump">$ 1,474,285<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_AccountsReceivableNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetAbstract</td>
</tr>
<tr>
<td style="padding-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_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/2003/role/disclosureRef<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><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/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_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AccruedIncomeTaxesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><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(15)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/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_AccruedIncomeTaxesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-14A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/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/2147480167/946-830-55-12<br><br>Reference 8: 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/2147479440/944-210-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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/2147479617/946-210-S99-1<br><br>Reference 11: 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 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/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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/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 24: 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 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 26: 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/2147479853/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>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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/2147479440/944-210-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(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-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(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_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_DeferredIncomeTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_DeferredRevenueNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(c))<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_DeferredRevenueNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 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 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<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>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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)(ii))<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 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 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 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/2147480167/946-830-55-12<br><br>Reference 8: 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/2147479617/946-210-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/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 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)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<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 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 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)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: 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 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 21: 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><br>Reference 22: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<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_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-28<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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)(ii))<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 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 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 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/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 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/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 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)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<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 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 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)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 19: 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 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481404/852-10-50-7<br><br>Reference 21: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, of receivables classified as other, due within one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 4: 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/2147480842/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://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 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 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 (h)(2)<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 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 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)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<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><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(30)(a)(3))<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_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/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 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/2147480167/946-830-55-12<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 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-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 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<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(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 6: 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/2147483575/946-220-S99-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(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/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 10: 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 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(29))<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(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: 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 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617561376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parentheticals) - shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>CONSOLIDATED BALANCE SHEETS</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_CommonStockSharesAuthorizedUnlimited', window );">Common shares - Shares authorized (in shares)</a></td>
<td class="text">Unlimited<span></span>
</td>
<td class="text">Unlimited<span></span>
</td>
</tr>
<tr class="re">
<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 shares - Shares issued (in shares)</a></td>
<td class="nump">85,605,969<span></span>
</td>
<td class="nump">85,183,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_CommonStockSharesOutstanding', window );">Common shares - Shares outstanding (in shares)</a></td>
<td class="nump">85,605,969<span></span>
</td>
<td class="nump">85,183,455<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_CommonStockSharesAuthorizedUnlimited">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of common shares permitted to be issued by an entity's charter and bylaws is unlimited. The acceptable value is "Unlimited".</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 210<br> -SubTopic 10<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_CommonStockSharesAuthorizedUnlimited</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>us-types:authorizedUnlimitedItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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://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/2147479617/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/2147483575/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/2147479617/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/2147483575/946-220-S99-3<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(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_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623407376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">$ 651,000<span></span>
</td>
<td class="nump">$ 572,931<span></span>
</td>
<td class="nump">$ 486,014<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">COST OF REVENUES (exclusive of amortization presented separately below)</a></td>
<td class="nump">158,574<span></span>
</td>
<td class="nump">138,295<span></span>
</td>
<td class="nump">113,326<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 MARGIN</a></td>
<td class="nump">492,426<span></span>
</td>
<td class="nump">434,636<span></span>
</td>
<td class="nump">372,688<span></span>
</td>
</tr>
<tr class="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>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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">73,692<span></span>
</td>
<td class="nump">68,161<span></span>
</td>
<td class="nump">56,573<span></span>
</td>
</tr>
<tr class="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">95,497<span></span>
</td>
<td class="nump">84,103<span></span>
</td>
<td class="nump">70,353<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">65,248<span></span>
</td>
<td class="nump">57,373<span></span>
</td>
<td class="nump">49,710<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCostAndExpenseOperating', window );">Other charges (Note 20)</a></td>
<td class="nump">7,466<span></span>
</td>
<td class="nump">21,649<span></span>
</td>
<td class="nump">5,441<span></span>
</td>
</tr>
<tr class="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 of intangible assets</a></td>
<td class="nump">69,399<span></span>
</td>
<td class="nump">60,501<span></span>
</td>
<td class="nump">60,177<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">TOTAL EXPENSES</a></td>
<td class="nump">311,302<span></span>
</td>
<td class="nump">291,787<span></span>
</td>
<td class="nump">242,254<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">INCOME FROM OPERATIONS</a></td>
<td class="nump">181,124<span></span>
</td>
<td class="nump">142,849<span></span>
</td>
<td class="nump">130,434<span></span>
</td>
</tr>
<tr class="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">(1,004)<span></span>
</td>
<td class="num">(1,363)<span></span>
</td>
<td class="num">(1,167)<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_dsgx_InvestmentAndOtherIncome', window );">INVESTMENT AND OTHER INCOME</a></td>
<td class="nump">11,513<span></span>
</td>
<td class="nump">9,666<span></span>
</td>
<td class="nump">4,461<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 BEFORE INCOME TAXES</a></td>
<td class="nump">191,633<span></span>
</td>
<td class="nump">151,152<span></span>
</td>
<td class="nump">133,728<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>INCOME TAX EXPENSE (RECOVERY) (Note 18)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current</a></td>
<td class="nump">53,402<span></span>
</td>
<td class="nump">41,223<span></span>
</td>
<td class="nump">28,248<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred</a></td>
<td class="num">(5,042)<span></span>
</td>
<td class="num">(5,978)<span></span>
</td>
<td class="nump">3,244<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">48,360<span></span>
</td>
<td class="nump">35,245<span></span>
</td>
<td class="nump">31,492<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">NET INCOME</a></td>
<td class="nump">$ 143,273<span></span>
</td>
<td class="nump">$ 115,907<span></span>
</td>
<td class="nump">$ 102,236<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>EARNINGS PER SHARE (Note 16)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in $ per share)</a></td>
<td class="nump">$ 1.68<span></span>
</td>
<td class="nump">$ 1.36<span></span>
</td>
<td class="nump">$ 1.21<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in $ per share)</a></td>
<td class="nump">$ 1.64<span></span>
</td>
<td class="nump">$ 1.34<span></span>
</td>
<td class="nump">$ 1.18<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">85,443<span></span>
</td>
<td class="nump">85,068<span></span>
</td>
<td class="nump">84,791<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">87,323<span></span>
</td>
<td class="nump">86,818<span></span>
</td>
<td class="nump">86,451<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_InvestmentAndOtherIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 investment income and other income.</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;">dsgx_InvestmentAndOtherIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482686/350-30-45-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<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_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 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 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 14: 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/2147483589/942-220-S99-1<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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/2147483589/942-220-S99-1<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(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 15: 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 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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/2147483575/946-220-S99-1<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.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_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 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 2: 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 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 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/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 6: 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 7: 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 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)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<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 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<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)(5))<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 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 16: 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 17: 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 18: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<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.1,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_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/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/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/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 5: 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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/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/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 4: 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 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 (h)<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/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/2147483586/944-220-S99-1<br><br>Reference 7: 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 8: 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_IncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-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_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 the cost of borrowed funds 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/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/2147480167/946-830-55-10<br><br>Reference 2: 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/2147483581/946-220-45-3<br><br>Reference 3: 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(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-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 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-3<br><br>Reference 6: 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.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 7: 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 (210.5-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/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 2: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<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 (f)<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/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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherCostAndExpenseOperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(7)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<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.3)<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_OtherCostAndExpenseOperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript: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 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482916/730-10-50-1<br><br>Reference 2: 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/2147482517/912-730-25-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481283/985-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_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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 (b)<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 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 8: 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 9: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total amount of expenses directly related to the marketing or selling of products or services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-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_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>20
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671722159936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income</a></td>
<td class="nump">$ 143,273<span></span>
</td>
<td class="nump">$ 115,907<span></span>
</td>
<td class="nump">$ 102,236<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossTaxAbstract', window );"><strong>Other comprehensive income (loss):</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of income tax (recovery) expense of $(391) for the year ended January 31, 2025 (January 31, 2024 - $1,094; January 31, 2023 - ($58))</a></td>
<td class="num">(21,911)<span></span>
</td>
<td class="nump">1,870<span></span>
</td>
<td class="num">(18,063)<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_OtherComprehensiveIncomeLossNetOfTax', window );">Total other comprehensive income (loss)</a></td>
<td class="num">(21,911)<span></span>
</td>
<td class="nump">1,870<span></span>
</td>
<td class="num">(18,063)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive income</a></td>
<td class="nump">$ 121,362<span></span>
</td>
<td class="nump">$ 117,777<span></span>
</td>
<td class="nump">$ 84,173<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of other comprehensive income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -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://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481674/830-30-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-17<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-4<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-5<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-20<br><br>Reference 8: 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(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 9: 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(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482739/220-10-55-15<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OtherComprehensiveIncomeLossTaxAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossTaxAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625463696">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Foreign currency translation adjustment, net of income tax (recovery) expense</a></td>
<td class="num">$ (391)<span></span>
</td>
<td class="nump">$ 1,094<span></span>
</td>
<td class="num">$ (58)<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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481956/830-20-45-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671621505440">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common shares</div></th>
<th class="th"><div>Additional paid-in capital</div></th>
<th class="th"><div>Accumulated other comprehensive income (loss)</div></th>
<th class="th"><div>Retained earnings</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, beginning of year at Jan. 31, 2022</a></td>
<td class="nump">$ 536,297<span></span>
</td>
<td class="nump">$ 473,303<span></span>
</td>
<td class="num">$ (12,393)<span></span>
</td>
<td class="nump">$ 2,612<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,667<span></span>
</td>
<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 );">Stock options and share units exercised</a></td>
<td class="nump">2,151<span></span>
</td>
<td class="num">(419)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(18,063)<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_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">102,236<span></span>
</td>
<td class="nump">$ 102,236<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, end of year at Jan. 31, 2023</a></td>
<td class="nump">538,448<span></span>
</td>
<td class="nump">486,551<span></span>
</td>
<td class="num">(30,456)<span></span>
</td>
<td class="nump">104,848<span></span>
</td>
<td class="nump">1,099,391<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16,480<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">12,716<span></span>
</td>
<td class="num">(8,330)<span></span>
</td>
<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,870<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</a></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">115,907<span></span>
</td>
<td class="nump">115,907<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, end of year at Jan. 31, 2024</a></td>
<td class="nump">551,164<span></span>
</td>
<td class="nump">494,701<span></span>
</td>
<td class="num">(28,586)<span></span>
</td>
<td class="nump">220,755<span></span>
</td>
<td class="nump">1,238,034<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,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>
</tr>
<tr class="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 );">Stock options and share units exercised</a></td>
<td class="nump">17,175<span></span>
</td>
<td class="num">(11,530)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(21,911)<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_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">143,273<span></span>
</td>
<td class="nump">143,273<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, end of year at Jan. 31, 2025</a></td>
<td class="nump">$ 568,339<span></span>
</td>
<td class="nump">$ 503,133<span></span>
</td>
<td class="num">$ (50,497)<span></span>
</td>
<td class="nump">$ 364,028<span></span>
</td>
<td class="nump">$ 1,385,003<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of other comprehensive income (loss) attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1B<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 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 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<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_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 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/2147480167/946-830-55-12<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 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-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 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-2<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(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 6: 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/2147483575/946-220-S99-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-3<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(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/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 10: 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 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(29))<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(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: 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 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623230704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>OPERATING ACTIVITIES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 143,273<span></span>
</td>
<td class="nump">$ 115,907<span></span>
</td>
<td class="nump">$ 102,236<span></span>
</td>
</tr>
<tr class="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 income to cash provided by operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">5,589<span></span>
</td>
<td class="nump">5,474<span></span>
</td>
<td class="nump">5,225<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">69,399<span></span>
</td>
<td class="nump">60,501<span></span>
</td>
<td class="nump">60,177<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="nump">19,962<span></span>
</td>
<td class="nump">16,480<span></span>
</td>
<td class="nump">13,667<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncomeExpense', window );">Other non-cash operating activities</a></td>
<td class="nump">23<span></span>
</td>
<td class="nump">114<span></span>
</td>
<td class="nump">53<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense (recovery)</a></td>
<td class="num">(5,042)<span></span>
</td>
<td class="num">(5,978)<span></span>
</td>
<td class="nump">3,244<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapital', window );">Changes in operating assets and liabilities (Note 21)</a></td>
<td class="num">(13,932)<span></span>
</td>
<td class="nump">15,182<span></span>
</td>
<td class="nump">7,793<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Cash provided by operating activities</a></td>
<td class="nump">219,272<span></span>
</td>
<td class="nump">207,680<span></span>
</td>
<td class="nump">192,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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract', window );"><strong>INVESTING ACTIVITIES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Additions to property and equipment</a></td>
<td class="num">(6,743)<span></span>
</td>
<td class="num">(5,563)<span></span>
</td>
<td class="num">(6,071)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Acquisition of subsidiaries, net of cash acquired (Note 3)</a></td>
<td class="num">(290,204)<span></span>
</td>
<td class="num">(142,700)<span></span>
</td>
<td class="num">(115,561)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Cash used in investing activities</a></td>
<td class="num">(296,947)<span></span>
</td>
<td class="num">(148,263)<span></span>
</td>
<td class="num">(121,632)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract', window );"><strong>FINANCING ACTIVITIES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfDebtIssuanceCosts', window );">Payment of debt issuance costs</a></td>
<td class="num">(53)<span></span>
</td>
<td class="num">(43)<span></span>
</td>
<td class="num">(1,118)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Issuance of common shares for cash, net of issuance costs (Note 15)</a></td>
<td class="nump">12,391<span></span>
</td>
<td class="nump">9,272<span></span>
</td>
<td class="nump">1,730<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Payment of withholding taxes on net share settlements</a></td>
<td class="num">(6,745)<span></span>
</td>
<td class="num">(4,886)<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_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="num">(9,223)<span></span>
</td>
<td class="num">(19,084)<span></span>
</td>
<td class="num">(5,215)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Cash used in financing activities</a></td>
<td class="num">(3,630)<span></span>
</td>
<td class="num">(14,741)<span></span>
</td>
<td class="num">(4,603)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Effect of foreign exchange rate changes on cash</a></td>
<td class="num">(3,509)<span></span>
</td>
<td class="num">(109)<span></span>
</td>
<td class="num">(3,212)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Increase (decrease) in cash</a></td>
<td class="num">(84,814)<span></span>
</td>
<td class="nump">44,567<span></span>
</td>
<td class="nump">62,948<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, beginning of year</a></td>
<td class="nump">320,952<span></span>
</td>
<td class="nump">276,385<span></span>
</td>
<td class="nump">213,437<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, end of year</a></td>
<td class="nump">236,138<span></span>
</td>
<td class="nump">320,952<span></span>
</td>
<td class="nump">276,385<span></span>
</td>
</tr>
<tr class="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 disclosure of cash flow information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Cash paid during the year for income taxes</a></td>
<td class="nump">$ 53,411<span></span>
</td>
<td class="nump">$ 44,939<span></span>
</td>
<td class="nump">$ 23,791<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482686/350-30-45-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript: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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481877/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 230<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481877/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</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 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all assets and liabilities used in 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_IncreaseDecreaseInOperatingCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/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_OtherNoncashIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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) included in net income that results in no cash inflow (outflow), 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 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.</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 15<br> -Subparagraph (f)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsOfDebtIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term 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> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfDebtIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 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 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ProceedsFromIssuanceOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671726810096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of the Business<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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 the 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 the Business</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;1&#160;- Description of the Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group&#160;Inc. (&#8220;Descartes&#8221;, &#8220;Company&#8221;, &#8220;our&#8221; or &#8220;we&#8221;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&#8220;SaaS&#8221;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports;&#160;and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//235/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 275<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//275/tableOfContent<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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>25
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671616871424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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>Basis of Presentation</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 );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;2&#160;&#8211;Basis of Presentation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying consolidated financial statements are presented in United States (&#8220;US&#8221;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#8220;GAAP&#8221;) and the rules&#160;and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our fiscal year, which ends on January 31, 2025, is referred to as the &#8220;current fiscal year&#8221;, &#8220;fiscal 2025&#8221;, &#8220;2025&#8221; or using similar words. Our previous fiscal year, which ended on January 31, 2024, is referred to as the &#8220;previous fiscal year&#8221;, &#8220;fiscal 2024&#8221;, &#8220;2024&#8221; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &#8220;2026&#8221; refers to the annual period ending January 31, 2026 and the &#8220;fourth quarter of 2026&#8221; refers to the quarter ending January 31, 2026.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have reclassified certain immaterial items in the consolidated financial statements to conform to the current presentation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Basis of consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Foreign currency translation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#8217; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the year ended January 31, 2025, foreign currency re-measurement loss of </span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million was included in net income (January 31, 2024 &#8211; loss of </span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million; January 31, 2023 &#8211; loss of </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Use of estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#8217;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as contingent consideration related to business acquisitions, product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#8217;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#8220;SSP&#8221;) of performance obligations in contracts with customers. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash included highly liquid short-term deposits with original maturities of three months or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#8220;Derivatives and Hedging&#8221; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#8217; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Canadian Overnight Repo Rate Average (CORRA); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Provision for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Inventory</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Impairment of long-lived assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Goodwill and intangible assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test for impairment of goodwill at least annually on October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#8217;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2025 and concluded that it was more likely than not that the fair value of the reporting unit was greater than the carrying value. As a result, </span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairment of goodwill was recorded in fiscal 2025 (</span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairments were recorded for fiscal 2024 or fiscal 2023).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Amortization of our intangible assets is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">2</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">20 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technologies</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">4</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">12 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">15 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">2</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">12 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><span style="font-family:'Verdana';margin-left:0pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Property and equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Property and equipment is recorded at cost. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Depreciation of our property and equipment is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">1</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">14 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Straight-line over lesser of useful life or term of lease</span></span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Leases</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize a right-of-use (&#8220;ROU&#8221;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#8217;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#8217;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenue recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a monthly basis based on the customer usage for that period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional Services &amp; Other</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Costs to obtain a contract with a customer</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between </span><span style="-sec-ix-hidden:Hidden_-YLk83amU0eYhwI_cdxmTg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">six years</span><span style="font-family:'Verdana';">, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contract assets and liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Stock-based compensation plans</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant. &#160;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Employee stock options generally vest over a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">seven years</span><span style="font-family:'Verdana';"> from the grant date. Non-employee directors&#8217; and officers&#8217; stock options generally have quarterly vesting over a </span><span style="-sec-ix-hidden:Hidden_p0K7MBptOk-gqxxjqsFSWA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#8220;PSUs&#8221;) and restricted share units (&#8220;RSUs&#8221;).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs vest at the end of a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#8220;TSR&#8221;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. New shares are issued from treasury upon the redemption of a PSU.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">RSUs vest annually over a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#8220;DSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a percentage of the eligible director&#8217;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least </span><span style="font-family:'Verdana';">50%</span><span style="font-family:'Verdana';"> of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#8220;CRSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over </span><span style="-sec-ix-hidden:Hidden_xODkettpHUKPFsEYeyXoCQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the calendar year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Business combinations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We apply the provisions of ASC Topic 805, &#8220;Business Combinations&#8221; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#8220;Exit or Disposal Cost Obligations&#8221; (Topic 420) and are accounted for separately from the business combination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Earnings per share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Recently adopted accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In November 2023, the FASB issued Accounting Standards Update 2023 - 07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&#8221; (&#8220;ASU 2023 - 07&#8221;). The amendments in ASU 2023 - 07 improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant segment expenses. ASU 2023 - 07 was effective for fiscal years beginning after December 15, 2023, which was our fiscal year that began on February 1, 2024 (fiscal 2025) and interim periods within fiscal years beginning after December 15, 2024, which was our fiscal year beginning February 1, 2025 (fiscal 2026). The Company adopted ASU 2023 - 07 retrospectively in the fourth quarter of fiscal 2025. The adoption of this guidance did not have a material impact on our results of operations. For changes to our disclosures see Note 22.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In December 2023, the FASB issued Accounting Standards Update 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures&#8221; (&#8220;ASU 2023-09&#8221;). The amendments in ASU 2023-09 enhance transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. ASU 2023-09 is effective for annual periods beginning after December 15, 2024, which will be our fiscal year beginning February 1, 2025 (fiscal 2026). Early adoption is permitted for annual financial statements that have not yet been issued or made available for issuance. The Company expects to adopt this guidance in the fourth quarter of fiscal 2026. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In November 2024, the FASB issued Accounting Standards Update 2024-03, &#8220;Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#8221; and issued a subsequent amendment to the initial guidance in January 2025, collectively referred to as &#8220;ASU 2024-03&#8221;. The amendments in ASU 2024-03 require disaggregation of certain expense captions into specified categories in disclosures within the notes to financial statements, which is expected to enhance cost transparency and improve comparability. ASU 2024-03 is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods within annual reporting periods beginning after December 15, 2027. Early adoption is permitted. The Company expects to adopt this guidance in the fourth quarter of fiscal 2028. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//235/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>26
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617578720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Acquisitions</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_BusinessCombinationDisclosureTextBlock', window );">Acquisitions</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;3&#160;&#8211; Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2025 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On March 28, 2024, Descartes acquired all of the shares of OCR Services, Inc. (&#8220;OCR&#8221;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$82.8</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$4.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$3.9</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before March 28, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April 19, 2024, Descartes acquired substantially all of the shares of Aerospace Software Developments (&#8220;ASD&#8221;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$62.5</span><span style="font-family:'Verdana';"> million (EUR </span><span style="font-family:'Verdana';">58.7</span><span style="font-family:'Verdana';"> million), net of cash acquired, which was substantially paid at closing from cash on hand with the remaining </span><span style="font-family:'Verdana';">$3.6</span><span style="font-family:'Verdana';"> million paid in the fourth quarter of fiscal 2025. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April 19, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June 10, 2024, Descartes acquired all of the shares of BoxTop Technologies Limited (&#8220;BoxTop&#8221;), a leading provider of shipment management solutions for small- to mid-sized logistics services providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$12.1</span><span style="font-family:'Verdana';"> million (GBP </span><span style="font-family:'Verdana';">9.5</span><span style="font-family:'Verdana';"> million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was nominal with a nominal fair value at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June 10, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On September 17, 2024, Descartes acquired all of the shares of Assure Assist, Inc., doing business as MyCarrierPortal (&#8220;MCP&#8221;), a leading provider of carrier onboarding and risk monitoring solutions for the trucking industry. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$22.5</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to </span><span style="font-family:'Verdana';">$6.0</span><span style="font-family:'Verdana';"> million based on MCP achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$1.7</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was nominal with a nominal fair value at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before September 17, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';">On October 11, 2024, Descartes acquired all of the shares of Sellercloud LLC and certain assets of Sellercloud Europe Ltd. (collectively referred to as &#8220;Sellercloud&#8221;), a leading provider of omnichannel ecommerce solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$110.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to </span><span style="font-family:'Verdana';">$20.0</span><span style="font-family:'Verdana';"> million based on Sellercloud achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$5.4</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before October 11, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';">For the businesses acquired during fiscal 2025, we incurred acquisition-related costs of </span><span style="font-family:'Verdana';">$4.8</span><span style="font-family:'Verdana';"> million for the year ended January 31, 2025. The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the year ended January 31, 2025, we have recognized revenues of </span><span style="font-family:'Verdana';">$36.4</span><span style="font-family:'Verdana';"> million, and net income of </span><span style="font-family:'Verdana';">$6.6</span><span style="font-family:'Verdana';"> million, from OCR, ASD, BoxTop, MCP and Sellercloud since the date of acquisition in our consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';">The preliminary purchase price allocation for businesses acquired during fiscal 2025, which have not been finalized, is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Seller-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OCR</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASD</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">BoxTop</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">MCP</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">cloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, net of cash acquired related to OCR ($</span><span style="font-family:'Verdana';">5,743</span><span style="font-family:'Verdana';">), ASD ($</span><span style="font-family:'Verdana';">2,475</span><span style="font-family:'Verdana';">), BoxTop ($</span><span style="font-family:'Verdana';">1,012</span><span style="font-family:'Verdana';">), MCP ($</span><span style="font-family:'Verdana';">2,105</span><span style="font-family:'Verdana';">) and Sellercloud ($</span><span style="font-family:'Verdana';">362</span><span style="font-family:'Verdana';">) </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 82,849</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 62,522</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,111</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 22,508</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 110,214</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 290,204</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,679</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,364</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7,043</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 164</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 124</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (217)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 196</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 248</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 83,013</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 62,646</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,092</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 23,970</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 115,774</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 297,495</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,669</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,445</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 58</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 933</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,122</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 59</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 186</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 245</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other long-term assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (906)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,108)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (488)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,160)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (437)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (4,099)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (11,145)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (330)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (454)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,816)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (236)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (13,981)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (59)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (186)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (245)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (13,107)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (3,319)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,743)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (18,169)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (20,399)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (306)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,626)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,959)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 265</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (26,025)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,247</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,926</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 17,300</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61,573</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">25,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,377</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,944</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">8,300</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 76,821</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 298</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 150</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 250</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,223</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 600</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 426</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 150</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,952</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,112</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">35,604</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">7,747</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,429</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">72,059</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">180,951</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 83,013</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">62,646</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">12,092</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 23,970</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">115,774</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">297,495</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, &#8220;Business Combinations&#8221;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one year from the acquisition date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OCR</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASD</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">BoxTop</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">MCP</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Seller-cloud</b></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">8 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">12 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">10 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="-sec-ix-hidden:Hidden_N7pYUxv4gkKjaFXQZFbtjA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">3</span></span><span style="font-family:'Verdana';">-</span><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the OCR, ASD, BoxTop, MCP and Sellercloud acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the OCR, ASD and BoxTop acquisitions are not deductible for tax purposes. The goodwill arising from the MCP and Sellercloud acquisitions are deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2024 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (&#8220;GroundCloud&#8221;), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$136.8</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$80.0</span><span style="font-family:'Verdana';"> million based on GroundCloud achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$19.6</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2024 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April 20, 2023, Descartes acquired substantially all of the assets of Localz Pty Ltd.(&#8220;Localz&#8221;), a cloud-based customer engagement platform for day-of-service interaction and order management. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$5.9</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal.</span> <span style="font-family:'Verdana';">The purchase price was finalized in the three month period ended April 30, 2024 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The final purchase price allocations for businesses we acquired in 2024 are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Ground-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Localz</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to GroundCloud (</span><span style="font-family:'Verdana';">$4,381</span><span style="font-family:'Verdana';">) and Localz (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 136,843</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,857</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,550</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,550</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 458</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 453</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 156,851</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,852</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 162,703</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 619</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,864</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Right-of-use Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 144</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 144</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,308)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (227)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,535)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (136)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,465)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,601)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (144)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (144)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (199)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,073)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,272)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29,400</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29,400</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 42,800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,971</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 48,771</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,100</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 82,750</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 954</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 83,704</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 156,851</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,852</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 162,703</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Aptos Narrow';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">GroundCloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Localz</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The goodwill on the GroundCloud and Localz acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the GroundCloud and Localz acquisitions is deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2023 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#8220;NetCHB&#8221;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$38.7</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$60.0</span><span style="font-family:'Verdana';"> million based on NetCHB achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two&#160;years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$13.9</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On April&#160;21, 2022, Descartes acquired substantially all of the assets of Foxtrot,&#160;Inc. (&#8220;Foxtrot&#8221;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$4.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">nominal. The purchase price was finalized in the three month period ended April 30, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June&#160;3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#8220;XPS&#8221;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$61.1</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$75.0</span><span style="font-family:'Verdana';"> million based on XPS achieving revenue-based targets over the first </span><span style="-sec-ix-hidden:Hidden_wLzvF18aMkSoqfV2k_2U7A;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">two&#160;years</span></span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$9.4</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended July 31, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On January 5, 2023, Descartes acquired all of the shares of Tran-Soft, LLC, doing business as Supply Vision (&#8220;Supply Vision&#8221;), a provider of shipment management solutions for North American Logistics Services Providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$11.6</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$3.0</span><span style="font-family:'Verdana';"> million based on Supply Vision achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$2.7</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2024 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The final purchase price allocations for businesses we acquired in 2023 are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$658</span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';">), XPS (</span><span style="font-family:'Verdana';">$3,932</span><span style="font-family:'Verdana';">) and Supply Vision (</span><span style="font-family:'Verdana';">$413</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61,096</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,573</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 115,561</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,948</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9,425</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,670</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26,043</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 51</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 978</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,099</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,247</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 142,703</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 835</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 718</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (367)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (22)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,483)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (532)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,404)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (336)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,196)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (132)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,664)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 477</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,230)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 54</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (597)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 22,150</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,640</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 20,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40,440</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 194</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,900</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,527</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,529</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,763</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 78,616</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,247</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 142,703</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">9 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the NetCHB, Foxtrot, XPS and Supply Vision acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot, XPS and Supply Vision acquisitions is deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired Sellercloud, MCP, BoxTop, ASD, OCR, Localz, GroundCloud, Supply Vision, XPS, Foxtrot and NetCHB as of February 1, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of Sellercloud, MCP, BoxTop, ASD, OCR, Localz, GroundCloud, Supply Vision, XPS, Foxtrot and NetCHB occurred at February 1, 2022, or to project our results of operations for any future period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 675,556</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 626,643</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 581,614</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 142,171</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 107,548</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 90,488</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.26</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.07</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.63</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.24</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.05</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="padding-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_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//805/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_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617538528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;4&#160;&#8211; Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">ASC Topic 820 &#8220;Fair Value Measurements and Disclosures&#8221; (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1&#8212;inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2&#8212;inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3&#8212;inputs are generally unobservable and typically reflect management&#8217;s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques that include option pricing models, discounted cash flow models, and similar techniques.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January 31, 2025:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,372</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,372</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January 31, 2024:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,206</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,206</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,146</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,146</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company enters into equity derivative contracts including floating-rate equity forwards to substantially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at January 31, 2025, we had equity derivatives for </span><span style="font-family:'Verdana';">332,473</span><span style="font-family:'Verdana';"> Descartes common shares with a weighted average price of $</span><span style="font-family:'Verdana';">36.80</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and administrative expenses in the consolidated financial statements. For the years ended January 31, 2025, 2024 and 2023, we recognized a recovery in general and administrative expenses of</span><span style="font-family:'Verdana';"> </span><span style="font-family:'Verdana';">($11.8)</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">($4.6)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">($1.3)</span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates of the fair value of contingent consideration are performed by the Company on a quarterly basis. Key unobservable inputs include </span><span style="-sec-ix-hidden:Hidden_wUviR6C3fEqFUQmmSc77-w;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">revenue</span></span><span style="font-family:'Verdana';"> </span><span style="-sec-ix-hidden:Hidden_mtJIG6LVE0yH0J6Nr7Bteg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">growth</span></span><span style="font-family:'Verdana';"> rates and the discount rates applied (</span><span style="font-family:'Verdana';">10</span><span style="font-family:'Verdana';">% to </span><span style="font-family:'Verdana';">16</span><span style="font-family:'Verdana';">%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.The following table presents the changes in the fair value measurements of the contingent consideration in Level 3 of the fair value hierarchy:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 30,949</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,550</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (31,688)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,334</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,146</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,043</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (34,210)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 707</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (12)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration paid in 2025 totaled </span><span style="font-family:'Verdana';">$34.2</span><span style="font-family:'Verdana';"> million, of which </span><span style="font-family:'Verdana';">$9.2</span><span style="font-family:'Verdana';"> million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of </span><span style="font-family:'Verdana';">$25.0</span><span style="font-family:'Verdana';"> million was paid out of cash flow from operating activities. Contingent consideration paid in 2024 totaled </span><span style="font-family:'Verdana';">$31.7</span><span style="font-family:'Verdana';"> million of which </span><span style="font-family:'Verdana';">$19.1</span><span style="font-family:'Verdana';"> million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of </span><span style="font-family:'Verdana';">$12.6</span><span style="font-family:'Verdana';"> million was paid out of cash flow from operating activities.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625476256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock', window );">Trade Accounts Receivable</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;5&#160;&#8211; Trade Accounts Receivable</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54,702</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,268</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (749)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (699)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 53,953</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51,569</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Included in accounts receivable are unbilled receivables in the amount of </span><span style="font-family:'Verdana';">$4.6</span><span style="font-family:'Verdana';"> million as at January 31, 2025 (</span><span style="font-family:'Verdana';">$2.4</span><span style="font-family:'Verdana';"> million as at January 31, 2024). </span><span style="font-family:'Verdana';">No single customer accounted for more than </span><span style="font-family:'Verdana';">10%</span><span style="font-family:'Verdana';"> of the accounts receivable balance as of January 31, 2025 and 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the provision for credit losses as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for&#160;Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,545</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 924</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,770)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 699</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,676</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,611)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (15)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 749</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.</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> -Publisher FASB<br> -URI https://asc.fasb.org//310-10/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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-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>29
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625432896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Receivables<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_dsgx_OtherReceivablesDisclosureAbstract', window );"><strong>Other Receivables</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_dsgx_OtherReceivablesTextBlock', window );">Other Receivables</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;6&#160;&#8211; Other Receivables</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,931</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,193</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,931</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,193</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January 31, 2025, a nominal balance (</span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> at January 31, 2024) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_OtherReceivablesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_OtherReceivablesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_OtherReceivablesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 other receivables.</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;">dsgx_OtherReceivablesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625343824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Prepaid Expenses and Other<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_PrepaidExpenseAndOtherAssetsCurrentAbstract', window );"><strong>Prepaid Expenses and Other</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_dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock', window );">Prepaid Expenses and Other</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 7 &#8211; Prepaid Expenses and Other</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Prepaid expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 18,457</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 16,909</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_-c-HgOnF9kGzA58VCMLhTg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Equity derivative contracts (Note 4)</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,372</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 16,206</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 715</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 353</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45,544</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33,468</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet.</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;">dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_PrepaidExpenseAndOtherAssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618328752">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;8&#160;&#8211; Property and Equipment</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,261</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 10.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 48,943</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,193</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,432</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 718</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 994</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,430</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,314</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 497</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43,637</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 54,180</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,507</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38,825</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,076</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,287</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 529</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 730</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,044</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,786</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,156</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42,628</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,481</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,552</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/2147480321/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/2147480321/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/2147480321/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>32
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617502800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_IntangibleAssetsNetExcludingGoodwillAbstract', 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-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;9&#160;- Intangible Assets</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 354,049</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 299,524</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 466,832</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 403,944</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,139</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,483</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,911</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 849,506</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 728,518</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 189,908</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 172,026</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 316,506</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 285,148</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,889</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,227</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,933</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,070</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 528,236</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 477,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 321,270</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 251,047</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the year ended January 31, 2025 is primarily due to the acquisitions of OCR, ASD, BoxTop, MCP and Sellercloud partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be </span><span style="font-family:'Verdana';">$321.3</span><span style="font-family:'Verdana';"> million over the following periods: </span><span style="font-family:'Verdana';">$71.2</span><span style="font-family:'Verdana';"> million for 2026, </span><span style="font-family:'Verdana';">$56.6</span><span style="font-family:'Verdana';"> million for 2027, </span><span style="font-family:'Verdana';">$49.4</span><span style="font-family:'Verdana';"> million for 2028, </span><span style="font-family:'Verdana';">$41.0</span><span style="font-family:'Verdana';"> million for 2029, </span><span style="font-family:'Verdana';">$29.3</span><span style="font-family:'Verdana';"> million for 2030 and </span><span style="font-family:'Verdana';">$73.8</span><span style="font-family:'Verdana';"> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625445632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_dsgx_GoodwillDisclosureAbstract', window );"><strong>Goodwill</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_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;10&#160;&#8211; Goodwill</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January 31, 2023:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 760,413</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 675,647</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GroundCloud</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 82,750</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Localz</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 954</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of OCR</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 52,112</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of ASD</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,604</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of BoxTop</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,747</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of MCP</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,429</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Sellercloud</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 72,059</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (16,609)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,062</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 924,755</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 760,413</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_GoodwillDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Goodwill Disclosure [Abstract]</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;">dsgx_GoodwillDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_GoodwillDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//350-20/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-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_GoodwillDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671801286240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Liabilities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_AccruedLiabilitiesCurrentAbstract', window );"><strong>Accrued 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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued Liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;11&#160;- Accrued Liabilities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 55,105</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,075</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued contingent acquisition consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,146</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,823</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,577</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 14,054</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,026</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 79,656</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 91,824</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities include accrued expenses related to third-party resellers and royalties, suppliers, and accrued restructuring charges.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a),20,24)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-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>35
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671726352656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Long-Term Debt<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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>Long-Term 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 );">Long-Term Debt</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;12&#160;&#8211; Long-Term Debt</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. The credit facility has a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> maturity with no fixed repayment dates prior to the end of the term ending December 2027. With the approval of the lenders, the credit facility can be expanded to a total of </span><span style="font-family:'Verdana';">$500.0</span><span style="font-family:'Verdana';"> million. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#8217; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Canadian Overnight Repo Rate Average (CORRA) or the Secured Overnight Financing Rate (SOFR) plus an additional </span><span style="font-family:'Verdana';">0</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">250</span><span style="font-family:'Verdana';"> basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. A standby fee of between </span><span style="font-family:'Verdana';">20</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">40</span><span style="font-family:'Verdana';"> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> amounts were drawn on the credit facility as of January 31, 2025 and the balance of </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, we had outstanding letters of credit of approximately </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million as at January 31, 2024), which were not related to our credit facility.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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>36
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625478752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;13&#160;&#8211; Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to </span><span style="font-family:'Verdana';">5&#160;years</span><span style="font-family:'Verdana';">, some of which include options to extend the leases for up to </span><span style="font-family:'Verdana';">5&#160;years</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of operating lease expense were as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,656</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,169</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,182</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">508</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">597</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">636</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,164</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,766</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,818</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental cash flow information related to operating leases was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,028</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3,996</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,240</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New right-of-use assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,706</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,239</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">864</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental information related to operating leases was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.0</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.1</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Maturities of operating lease liabilities were as follows as of January 31, 2025:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,571</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,510</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,671</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 596</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2030</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 219</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2031 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,567</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (671)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,896</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,178</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4,718</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//842-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671720786240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments, Contingencies and Guarantees<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract', window );"><strong>Commitments, Contingencies and Guarantees</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_CommitmentsContingenciesAndGuaranteesTextBlock', window );">Commitments, Contingencies and Guarantees</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;14&#160;- Commitments, Contingencies and Guarantees</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As described in Note 2 to these consolidated financial statements, we maintain deferred share unit (&#8220;DSU&#8221;) and cash-settled restricted share unit (&#8220;CRSU&#8221;) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million, respectively, at January 31, 2025. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2025, we had equity derivatives for </span><span style="font-family:'Verdana';">332,473</span><span style="font-family:'Verdana';"> Descartes common shares and a DSU liability for </span><span style="font-family:'Verdana';">332,473</span><span style="font-family:'Verdana';"> Descartes common shares, resulting in no net exposure resulting from changes to our share price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of Supply Vision, GroundCloud, MCP and Sellercloud, up to </span><span style="font-family:'Verdana';">$67.5</span><span style="font-family:'Verdana';"> million in cash may become payable if certain revenue performance targets are met in the </span><span style="font-family:'Verdana';">two&#160;years</span><span style="font-family:'Verdana';"> following the acquisition. A balance of</span><span style="font-family:'Verdana';"> </span><span style="font-family:'Verdana';">$8.7</span><span style="font-family:'Verdana';"> million is accrued related to the fair value of this contingent consideration as at January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#8220;Guarantees&#8221;. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third-party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>N/A</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;">dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_CommitmentsContingenciesAndGuaranteesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, contingencies, and guarantees.</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 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//450/tableOfContent<br><br>Reference 2: 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><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 460<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//460/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_CommitmentsContingenciesAndGuaranteesTextBlock</td>
</tr>
<tr>
<td style="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>38
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618330992">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Share Capital</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 );">Share Capital</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;15&#160;&#8211; Share Capital</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2022, we filed a final short-form base shelf prospectus (the &#8220;2022 Base Shelf Prospectus&#8221;), allowing us to offer and issue an unlimited quantity of the following securities during the </span><span style="font-family:'Verdana';">25</span><span style="font-family:'Verdana';">-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> securities were sold pursuant to the 2022 Base Shelf Prospectus, which was withdrawn in July 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2024, we filed a final short-form base shelf prospectus (the &#8220;2024 Base Shelf Prospectus&#8221;), allowing us to offer and issue an unlimited quantity of the following securities during the </span><span style="font-family:'Verdana';">25</span><span style="font-family:'Verdana';">-month period following thereafter: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> securities have yet been sold pursuant to the 2024 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following table sets forth the common shares outstanding (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 85,183</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,820</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,756</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Shares issued:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 423</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 363</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Issuance of common shares</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Acquisitions (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 85,606</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 85,183</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,820</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash flows provided from stock options and share units exercised during 2025, 2024 and 2023 were approximately </span><span style="font-family:'Verdana';">$12.4</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$9.3</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$1.7</span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2025, 2024 and 2023, the Company withheld </span><span style="font-family:'Verdana';">73,588</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">63,330</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> common shares, respectively, to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs. Total payments to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs were </span><span style="font-family:'Verdana';">$6.7</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$4.9</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> during 2025, 2024 and 2023, respectively, and are reflected as a financing activity in the consolidated statements of cash flows.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 (h)<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 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481062/946-235-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481062/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-6<br><br>Reference 7: 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 8: 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 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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>39
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617325632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings Per Share</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;16&#160;- Earnings Per Share</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (&#8220;EPS&#8221;) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">143,273</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">115,907</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">102,236</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">85,443</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">85,068</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">84,791</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">587</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">505</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">455</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,293</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">1,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">1,205</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">87,323</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">86,818</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">86,451</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.36</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.21</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.34</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.18</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2025, 2024 and 2023, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';">274,398</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">16,562</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">589,658</span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2025, 2024 and 2023, </span><span style="font-family:'Verdana';">939</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">265,694</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">1,315</span><span style="font-family:'Verdana';"> stock options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Additionally, for the years ended January 31, 2025, 2024 and 2023, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">95,134</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625417616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation Plans</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;17&#160;- Stock-Based Compensation Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,407</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 940</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,440</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,197</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,468</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,744</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,788</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,371</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,017</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19,962</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,480</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,667</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million at January 31, 2024) recognized in the United States and Canada. The tax benefit realized in connection with stock options exercised during 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$0.4</span><span style="font-family:'Verdana';"> million and nominal, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, we had </span><span style="font-family:'Verdana';">1,501,901</span><span style="font-family:'Verdana';"> stock options granted and outstanding under our shareholder-approved stock option plan and </span><span style="font-family:'Verdana';">2,177,290</span><span style="font-family:'Verdana';"> remained available for grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, </span><span style="font-family:'Verdana';">$9.7</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">2.4</span><span style="font-family:'Verdana';">&#160;years. The total fair value of stock options vested during 2025 was </span><span style="font-family:'Verdana';">$6.4</span><span style="font-family:'Verdana';"> million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total number of options granted during the years ended January 31, 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';">280,658</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">278,845</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">356,014</span><span style="font-family:'Verdana';">, respectively. The weighted average grant-date fair value of options granted during the years ended January 31, 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';">$29.53</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">$26.19</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$18.47</span><span style="font-family:'Verdana';"> per option, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The weighted-average assumptions were as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 30.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">A summary of option activity under all of our plans is presented as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,593,433</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45.54</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 278,845</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 79.80</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (285,808)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33.06</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (17,919)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 62.30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,568,551</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52.31</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 54.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 280,658</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 88.82</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (332,109)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (15,199)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 77.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,501,901</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 91.6</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,501,901</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 91.6</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;">Exercisable at  January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,091,499</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54.70</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 73.5</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total intrinsic value of options exercised during the years ended January 31, 2025, 2024 and 2023 was approximately </span><span style="font-family:'Verdana';">$20.3</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$13.2</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$2.5</span><span style="font-family:'Verdana';"> million, respectively. The exercise price range for outstanding options at January 31, 2025 was </span><span style="font-family:'Verdana';">$26.44</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">$120.82</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 10pt 0pt;"><span style="font-family:'Verdana';">A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January 31, 2025 is presented as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Grant-Date&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock&#160;Options&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fair&#160;Value&#160;per&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 488,821</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16.11</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 278,845</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.19</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (303,628)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17.74</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (17,485)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18.29</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 446,553</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 20.67</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 280,658</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29.53</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (301,921)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 21.88</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (14,888)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 25.16</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 410,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 25.21</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Performance Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of PSU activity is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 915,233</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38.41</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 67.9</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 95,134</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 105.96</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 68,005</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 53.80</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (87,354)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14.29</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,475)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 81.82</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 988,543</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 53.81</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 86.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 92,873</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 109.77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 40,477</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 80.11</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (109,820)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19.88</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3,428)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 80.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,008,645</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62.92</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123.1</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,008,645</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62.92</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123.1</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 726,075</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 47.45</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 88.6</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2025) that would have been received by PSU holders if all PSUs had been vested on January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, </span><span style="font-family:'Verdana';">$10.6</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">1.7</span><span style="font-family:'Verdana';">&#160;years. The total fair value of PSUs vested during 2025 was </span><span style="font-family:'Verdana';">$6.1</span><span style="font-family:'Verdana';"> million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of RSU activity is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 474,631</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 32.44</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61,774</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 79.89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (53,898)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8.52</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (413)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 60.66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 482,094</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40.19</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62,597</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 88.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (54,173)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13.36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (829)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 70.74</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 489,689</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48.48</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 59.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 489,689</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48.48</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 59.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 427,613</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43.14</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 52.2</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2025) that would have been received by RSU holders if all RSUs had been vested on January 31, 2025.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, </span><span style="font-family:'Verdana';">$5.1</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">1.7</span><span style="font-family:'Verdana';">&#160;years. The total fair value of RSUs vested during 2025 was </span><span style="font-family:'Verdana';">$4.5</span> <span style="font-family:'Verdana';">million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, the total number of DSUs held by participating directors was </span><span style="font-family:'Verdana';">332,473</span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';">311,081</span><span style="font-family:'Verdana';"> at January 31, 2024), representing an aggregate accrued liability of </span><span style="font-family:'Verdana';">$38.6</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$27.3</span><span style="font-family:'Verdana';"> million at January 31, 2024). During 2025, </span><span style="font-family:'Verdana';">21,392</span><span style="font-family:'Verdana';"> DSUs were granted and </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> DSUs were redeemed and settled in cash. As at January 31, 2025, the unrecognized aggregate liability for the unvested DSUs was </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> at January 31, 2024). The fair value of the DSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to DSUs recognized</span> <span style="font-family:'Verdana';">in our consolidated statements of operations was approximately </span><span style="font-family:'Verdana';">$13.9</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$6.7</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$3.2</span><span style="font-family:'Verdana';"> million for the years ended January 31, 2025, 2024 and 2023, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of activity under our CRSU plan is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,583</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7,879</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (11,092)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,370</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,579</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (7,333)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (599)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">12,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.7</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.7</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million at January 31, 2025 (</span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million at January 31, 2024). As at January 31, 2025, the unrecognized aggregate liability for the unvested CRSUs was </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million at January 31, 2024). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized in our consolidated statements of operations was approximately </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million for the years ended January 31, 2025, 2024 and 2023, respectively.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//718/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625452896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;18&#160;- Income Taxes</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Income before income taxes is earned in the following tax jurisdictions: </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 60,119</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 53,246</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 49,158</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 92,637</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 62,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51,268</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 38,877</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,560</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 33,302</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151,152</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 133,728</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Income tax expense (recovery) is incurred in the following jurisdictions:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,282</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,376</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,673</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 18,020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,532</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,085</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,100</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,315</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,490</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 53,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,223</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 28,248</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3,875)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,369)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,059</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 585</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,060)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,888)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,752)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,451</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 73</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5,042)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,978)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,244</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Income tax expense for 2025, 2024 and 2023 was </span><span style="font-family:'Verdana';">25%</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">23%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">24%</span><span style="font-family:'Verdana';"> of income before income taxes, respectively, with current income tax expense being </span><span style="font-family:'Verdana';">28</span><span style="font-family:'Verdana';">%, </span><span style="font-family:'Verdana';">27</span><span style="font-family:'Verdana';">% and </span><span style="font-family:'Verdana';">21%</span><span style="font-family:'Verdana';"> of income before income taxes, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2025 as compared to 2024 primarily due to a decrease in tax attributes available to shelter income in Canada and the United Kingdom.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2024 as compared to 2023 primarily due to a decrease in tax attributes available to shelter income in Canada and the new requirement to capitalize research and development expenses in the United States.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax recovery decreased in 2025 as compared to 2024 primarily due to the utilization of tax attributes in the Unites States partially offset by full utilization of tax attributes in the United Kingdom and Canada in the prior period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense decreased in 2024 as compared to 2023 primarily due to the capitalization of research and development expenses in the United States in 2024 and the increased utilization of tax attributes in Canada in 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of the deferred income tax assets and liabilities are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accrued liabilities not currently deductible</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 10,326</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 11,736</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accumulated losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 2,813</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 2,397</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 9,653</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 9,088</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Research and development expenditures and tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 9,683</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 7,680</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 32,475</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 30,901</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (53,346)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (42,423)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Temporary difference on equity derivative and related party debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (6,990)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (5,513)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (60,336)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (47,936)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (27,861)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (17,035)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (2,464)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (1,969)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes, net of valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (30,325)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (19,004)</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2025, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $</span><span style="font-family:'Verdana';">1,305.0</span><span style="font-family:'Verdana';"> million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151,152</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 133,728</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Combined basic Canadian statutory rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense based on the above rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 50,783</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 40,055</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,438</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Increase (decrease) in income taxes resulting from:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Permanent differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,490</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 124</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 590</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of differences between Canadian and foreign tax rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (2,042)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,293)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,859)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of rate changes on current year timing differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (424)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (48)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (219)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Change in estimates relating to prior periods</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,888)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (972)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase (decrease) in accruals for uncertain tax positions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (544)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (117)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,181)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 564</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 263</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (155)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Research tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (2,230)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,488)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (734)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other, including foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 697</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 637</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 584</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We have income tax loss carry forwards which expire as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">United</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Asia Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 59</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 59</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 191</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 50</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 188</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 146</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2030</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 237</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 375</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 310</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 488</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 798</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Indefinite</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 532</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,326</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,858</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,256</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,326</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,033</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,615</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,153</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,120</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Gross increases &#8211; current period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,476</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,946</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lapsing due to statutes of limitations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (2,098)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,913)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,153</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We have identified accruals of $</span><span style="font-family:'Verdana';">5.5</span><span style="font-family:'Verdana';"> million with respect to uncertain tax positions as at January 31, 2025. It is possible that these accruals for uncertain tax positions will not be required in which case up to $</span><span style="font-family:'Verdana';">5.5</span><span style="font-family:'Verdana';"> million of the recorded liability will decrease the effective tax rate in future years if this liability is reversed. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We believe that it is reasonably possible that $</span><span style="font-family:'Verdana';">0.1</span><span style="font-family:'Verdana';"> million of the uncertain tax positions could decrease tax expense in the next 12 months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January 31, 2025 and January 31, 2024, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Years No Longer Subject to</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> Audit</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Tax Jurisdiction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States Federal</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2017 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United Kingdom</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Sweden</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Norway</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2018 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Netherlands</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2019 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Belgium</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Germany</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2019 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Switzerland</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Brazil</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480990/946-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<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 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//740/tableOfContent<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 14<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-14<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 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-21<br><br>Reference 6: 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/2147482526/740-270-50-1<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 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-17<br><br>Reference 8: 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 9: 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 10: 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>42
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625448768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Contract Balances, Performance Obligations and Contract Costs</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;19&#160;&#8211; Contract Balances, Performance Obligations and Contract Costs</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the deferred revenue balance as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 69,399</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (56,102)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 72,483</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 115</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 82</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 85,977</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (68,389)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 86,328</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,195</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (903)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 105,208</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 104,230</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 978</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2025, approximately </span><span style="font-family:'Verdana';">$528.3</span><span style="font-family:'Verdana';"> million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately </span><span style="font-family:'Verdana';">80%</span><span style="font-family:'Verdana';"> of these remaining performance obligations over the next </span><span style="font-family:'Verdana';">24&#160;months</span><span style="font-family:'Verdana';"> with the balance recognized thereafter.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the contract assets balance as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,222</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,291)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,104</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (6)</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,029</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,585)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,008</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (31)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,421</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Capitalized contract costs net of accumulated amortization is </span><span style="font-family:'Verdana';">$19.0</span><span style="font-family:'Verdana';"> million at January 31, 2025 (</span><span style="font-family:'Verdana';">$18.6</span><span style="font-family:'Verdana';"> million at January 31, 2024). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates.</span> <span style="font-family:'Verdana';">The total contract cost amortization included in sales and marketing expenses was approximately </span><span style="font-family:'Verdana';">$6.9</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$6.6</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$5.8</span><span style="font-family:'Verdana';"> million for the years ended January 31, 2025, 2024 and 2023, respectively.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-15<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625332768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_OtherIncomeAndExpensesAbstract', window );"><strong>Other Charges</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_OtherIncomeAndOtherExpenseDisclosureTextBlock', window );">Other Charges</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;20&#160;- Other Charges</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</span> <span style="font-family:'Verdana';">Contingent consideration adjustments relate to changes in anticipated acquisition earnout payment accruals primarily as a result of increases or decreases to revenue performance and forecasts. Revenue forecasts are updated on a quarterly basis and the related earnout payment accruals are updated accordingly.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables shows the components of other charges as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,803</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,697</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,560</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration accretion and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 707</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 16,334</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,804</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 956</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,618</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,649</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,441</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fiscal 2024 Restructuring Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In the third quarter of fiscal 2024, management approved and began to implement the fiscal 2024 restructuring plan to reduce operating expenses and increase operating margins. To date, </span><span style="font-family:'Verdana';">$1.8</span><span style="font-family:'Verdana';"> million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of office closures and workforce reduction charges. As of January 31, 2025, we expect total remaining office closures to be nominal.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the changes in the restructuring provision for the fiscal 2024 restructuring plan:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Office&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Closures</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 442</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 442</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Accruals and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 112</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 178</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Cash draw downs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (503)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (112)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (615)</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Non-cash draw downs and foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5)</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fiscal 2025 Restructuring Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In the fourth quarter of fiscal 2025, management approved and began to implement the fiscal 2025 restructuring plan to reduce operating expenses and increase operating margins. To date, </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of workforce reduction charges. As of January 31, 2025, we expect total remaining workforce reduction costs to be incurred of approximately </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million to </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the changes in the restructuring provision for the fiscal 2025 restructuring plan:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accruals and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 778</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 778</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash draw downs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (616)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (616)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 162</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 162</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherIncomeAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherIncomeAndExpensesAbstract</td>
</tr>
<tr>
<td style="padding-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_OtherIncomeAndOtherExpenseDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 other income or other expense items (both operating and nonoperating). Sources of nonoperating income or nonoperating expense that may be disclosed, include amounts earned from dividends, interest on securities, profits (losses) on securities, net and miscellaneous other income or income deductions.</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 610<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//610/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 720<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//720/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_OtherIncomeAndOtherExpenseDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625296448">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Cash Flow Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_SupplementalCashFlowElementsAbstract', window );"><strong>Supplemental Cash Flow Information</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_CashFlowSupplementalDisclosuresTextBlock', window );">Supplemental Cash Flow Information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;21&#160;&#8211; Supplemental Cash Flow Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables present cash provided by (used in) operating activities related to changes in assets and liabilities:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,299</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (6,566)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,802)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (683)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,589</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (14,712)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (8,039)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,560)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,868</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,180</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (620)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (9,017)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,270</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,433</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 956</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (446)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 753</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (349)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 325</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (95)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,825</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,141</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,142</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Changes in operating assets and liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (13,932)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,182</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 7,793</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//230/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_CashFlowSupplementalDisclosuresTextBlock</td>
</tr>
<tr>
<td style="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_SupplementalCashFlowElementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowElementsAbstract</td>
</tr>
<tr>
<td style="padding-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>45
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625285520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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>Segmented Information</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 );">Segmented Information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;22&#160;- Segmented Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in </span><span style="font-family:'Verdana';">one</span><span style="font-family:'Verdana';"> reportable business segment providing logistics technology solutions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company has determined that it has a chief operating decision maker (&#8220;CODM&#8221;) comprised of the Company&#8217;s chief executive officer and president &amp; chief operating officer. The CODM assesses performance for the Company and makes operating decisions based on consolidated net income and Adjusted EBITDA. The term &#8220;Adjusted EBITDA&#8221; refers to a financial measure that we define as earnings before certain charges that management considers to be non-operating expenses and which consist of interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges, acquisition-related expenses, and contingent consideration incurred due to better-than-expected performance from acquisitions). Management considers these non-operating expenses to be outside the scope of Descartes&#8217; ongoing operations and the related expenses are not used by management to measure operations. Accordingly, these expenses are excluded from Adjusted EBITDA, which we reference to both measure our operations and as a basis of comparison of our operations from period-to-period. Adjusted EBITDA is a non-GAAP financial measure and may not be comparable to similarly titled measures reported by other companies. The CODM uses net income and adjusted EBITDA to assess overall performance of the Company and to evaluate whether to reinvest profits or invest in acquisitions. Asset information is not regularly provided to the CODM and as such the CODM does not make decisions based on assets. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following table provides a breakdown of the measures of profit regularly provided to the CODM:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 572,931</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 486,014</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Less:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Headcount-related costs, including stock compensation expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 249,887</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 226,897</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 195,261</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cost of revenues and network charges (exclusive of other items presented separately)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67,212</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 53,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 33,996</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">SaaS software and maintenance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 23,066</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,908</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,476</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other segment items</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54,723</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 63,505</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 44,445</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,474</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,225</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 69,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,501</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 469,876</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 430,082</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 355,580</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income from operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 181,124</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,849</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 130,434</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,004)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,363)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,167)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,513</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,666</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,461</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151,152</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 133,728</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Net income</b><span style="font-family:'Verdana';">, as reported on Consolidated Statements of Operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 143,273</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 115,907</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102,236</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Adjustments to reconcile to Adjusted EBITDA:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,004</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,363</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,167</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (11,513)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (9,666)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (4,461)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Depreciation expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,474</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,225</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 69,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,501</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Stock-based compensation and related taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 21,098</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,005</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,920</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other charges (Note 20)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 21,649</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,441</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 284,676</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 247,478</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 215,197</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other segment items includes travel expenses, reseller fees, contractors, corporate cars, bad debt expense, occupancy, insurance, marketing, employee administrative costs, professional fees, board of director fees, foreign exchange gains and losses, and other expenses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 439,103</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 382,176</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 307,102</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 153,004</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 137,164</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 126,942</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,254</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,422</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 34,547</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19,639</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,169</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,423</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 572,931</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 486,014</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,715</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,326</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,385</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 590,243</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 520,930</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 435,734</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 55,042</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 46,675</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41,895</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 572,931</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 486,014</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 246,048</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 178,843</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 49,737</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26,298</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,007</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 47,072</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,959</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,386</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 333,751</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 262,599</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/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 3: 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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<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 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/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 8: 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 9: 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 10: 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 12: 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 13: 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 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617507056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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>Basis of Presentation</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying consolidated financial statements are presented in United States (&#8220;US&#8221;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#8220;GAAP&#8221;) and the rules&#160;and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our fiscal year, which ends on January 31, 2025, is referred to as the &#8220;current fiscal year&#8221;, &#8220;fiscal 2025&#8221;, &#8220;2025&#8221; or using similar words. Our previous fiscal year, which ended on January 31, 2024, is referred to as the &#8220;previous fiscal year&#8221;, &#8220;fiscal 2024&#8221;, &#8220;2024&#8221; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &#8220;2026&#8221; refers to the annual period ending January 31, 2026 and the &#8220;fourth quarter of 2026&#8221; refers to the quarter ending January 31, 2026.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have reclassified certain immaterial items in the consolidated financial statements to conform to the current presentation.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Basis of consolidation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Basis of consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign currency translation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Foreign currency translation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#8217; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the year ended January 31, 2025, foreign currency re-measurement loss of </span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million was included in net income (January 31, 2024 &#8211; loss of </span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million; January 31, 2023 &#8211; loss of </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million).</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of estimates</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Use of estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#8217;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as contingent consideration related to business acquisitions, product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#8217;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#8220;SSP&#8221;) of performance obligations in contracts with customers. </span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash included highly liquid short-term deposits with original maturities of three months or less.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Financial instruments</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#8220;Derivatives and Hedging&#8221; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#8217; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Canadian Overnight Repo Rate Average (CORRA); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Provision for Credit Losses</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Provision for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. </span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Inventory</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock', window );">Impairment of long-lived assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Impairment of long-lived assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Goodwill and intangible assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Goodwill and intangible assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test for impairment of goodwill at least annually on October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#8217;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2025 and concluded that it was more likely than not that the fair value of the reporting unit was greater than the carrying value. As a result, </span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairment of goodwill was recorded in fiscal 2025 (</span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairments were recorded for fiscal 2024 or fiscal 2023).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Amortization of our intangible assets is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">2</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">20 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technologies</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">4</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">12 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">15 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">2</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">12 years</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and equipment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Property and equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Property and equipment is recorded at cost. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Depreciation of our property and equipment is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">1</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">14 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Straight-line over lesser of useful life or term of lease</span></span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Leases</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize a right-of-use (&#8220;ROU&#8221;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#8217;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#8217;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue recognition</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenue recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a monthly basis based on the customer usage for that period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional Services &amp; Other</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Costs to obtain a contract with a customer</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between </span><span style="-sec-ix-hidden:Hidden_-YLk83amU0eYhwI_cdxmTg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">six years</span><span style="font-family:'Verdana';">, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contract assets and liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Research and development costs</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-based compensation plans</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Stock-based compensation plans</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant. &#160;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Employee stock options generally vest over a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">seven years</span><span style="font-family:'Verdana';"> from the grant date. Non-employee directors&#8217; and officers&#8217; stock options generally have quarterly vesting over a </span><span style="-sec-ix-hidden:Hidden_p0K7MBptOk-gqxxjqsFSWA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#8220;PSUs&#8221;) and restricted share units (&#8220;RSUs&#8221;).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs vest at the end of a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#8220;TSR&#8221;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. New shares are issued from treasury upon the redemption of a PSU.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">RSUs vest annually over a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#8220;DSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a percentage of the eligible director&#8217;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least </span><span style="font-family:'Verdana';">50%</span><span style="font-family:'Verdana';"> of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#8220;CRSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over </span><span style="-sec-ix-hidden:Hidden_xODkettpHUKPFsEYeyXoCQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the calendar year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business combinations</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Business combinations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We apply the provisions of ASC Topic 805, &#8220;Business Combinations&#8221; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#8220;Exit or Disposal Cost Obligations&#8221; (Topic 420) and are accounted for separately from the business combination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income taxes</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Earnings per share</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Earnings per share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recently issued accounting pronouncements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Recently adopted accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In November 2023, the FASB issued Accounting Standards Update 2023 - 07, &#8220;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&#8221; (&#8220;ASU 2023 - 07&#8221;). The amendments in ASU 2023 - 07 improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant segment expenses. ASU 2023 - 07 was effective for fiscal years beginning after December 15, 2023, which was our fiscal year that began on February 1, 2024 (fiscal 2025) and interim periods within fiscal years beginning after December 15, 2024, which was our fiscal year beginning February 1, 2025 (fiscal 2026). The Company adopted ASU 2023 - 07 retrospectively in the fourth quarter of fiscal 2025. The adoption of this guidance did not have a material impact on our results of operations. For changes to our disclosures see Note 22.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In December 2023, the FASB issued Accounting Standards Update 2023-09, &#8220;Income Taxes (Topic 740): Improvements to Income Tax Disclosures&#8221; (&#8220;ASU 2023-09&#8221;). The amendments in ASU 2023-09 enhance transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. ASU 2023-09 is effective for annual periods beginning after December 15, 2024, which will be our fiscal year beginning February 1, 2025 (fiscal 2026). Early adoption is permitted for annual financial statements that have not yet been issued or made available for issuance. The Company expects to adopt this guidance in the fourth quarter of fiscal 2026. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In November 2024, the FASB issued Accounting Standards Update 2024-03, &#8220;Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#8221; and issued a subsequent amendment to the initial guidance in January 2025, collectively referred to as &#8220;ASU 2024-03&#8221;. The amendments in ASU 2024-03 require disaggregation of certain expense captions into specified categories in disclosures within the notes to financial statements, which is expected to enhance cost transparency and improve comparability. ASU 2024-03 is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods within annual reporting periods beginning after December 15, 2027. Early adoption is permitted. The Company expects to adopt this guidance in the fourth quarter of fiscal 2028. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</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 805<br> -SubTopic 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479515/805-10-05-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_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="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_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://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 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 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_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 determining the fair value of financial 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> -Name Accounting Standards Codification<br> -Section 60<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 820<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482053/820-10-60-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-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_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//830/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment and disposal of long-lived assets including goodwill and other intangible 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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483489/210-10-50-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(6)(b))<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/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 4: 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/2147482105/912-330-50-1<br><br>Reference 5: 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 6: 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482989/270-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/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/2147480321/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/2147480321/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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.</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 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy</td>
</tr>
<tr>
<td style="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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.</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 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481283/985-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 4<br> -SubTopic 50<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482610/350-50-25-4<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1<br> -SubTopic 40<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482633/350-40-30-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-18<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<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)(v)<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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//718/tableOfContent<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625406752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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>Basis of Presentation</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_dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock', window );">Schedule of depreciation of property, plant and equipment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">1</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">14 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Straight-line over lesser of useful life or term of lease</span></span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3 years</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of amortization of intangible assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">2</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">20 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technologies</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">4</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">12 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">3</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">15 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Straight-line over </span><span style="font-family:'Verdana';">2</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">12 years</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated depreciation of property, plant and equipment useful life.</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;">dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, amortization of useful life.</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;">dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671616859536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Acquisitions</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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of preliminary purchase price allocation for businesses acquired</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Seller-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OCR</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASD</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">BoxTop</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">MCP</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">cloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, net of cash acquired related to OCR ($</span><span style="font-family:'Verdana';">5,743</span><span style="font-family:'Verdana';">), ASD ($</span><span style="font-family:'Verdana';">2,475</span><span style="font-family:'Verdana';">), BoxTop ($</span><span style="font-family:'Verdana';">1,012</span><span style="font-family:'Verdana';">), MCP ($</span><span style="font-family:'Verdana';">2,105</span><span style="font-family:'Verdana';">) and Sellercloud ($</span><span style="font-family:'Verdana';">362</span><span style="font-family:'Verdana';">) </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 82,849</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 62,522</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,111</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 22,508</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 110,214</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 290,204</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,679</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,364</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7,043</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 164</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 124</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (217)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 196</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 248</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 83,013</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 62,646</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,092</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 23,970</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 115,774</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 297,495</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,669</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,445</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 58</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 933</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,122</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 59</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 186</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 245</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other long-term assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (906)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,108)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (488)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,160)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (437)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (4,099)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (11,145)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (330)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (454)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,816)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (236)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (13,981)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (59)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (186)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (245)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (13,107)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (3,319)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,743)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (18,169)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (20,399)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (306)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,626)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,959)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 265</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (26,025)</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,247</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,926</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 17,300</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61,573</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">25,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,377</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,944</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">8,300</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 76,821</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 298</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 150</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 250</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,223</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 600</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 426</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 150</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,952</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,112</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">35,604</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">7,747</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,429</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">72,059</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">180,951</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 83,013</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">62,646</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">12,092</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 23,970</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">115,774</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">297,495</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Ground-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Localz</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to GroundCloud (</span><span style="font-family:'Verdana';">$4,381</span><span style="font-family:'Verdana';">) and Localz (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 136,843</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,857</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,550</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,550</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 458</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 453</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 156,851</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,852</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 162,703</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 619</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,864</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Right-of-use Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 144</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 144</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,308)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (227)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,535)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (136)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,465)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,601)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (144)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (144)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (199)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,073)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,272)</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29,400</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29,400</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 42,800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,971</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 48,771</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,100</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 82,750</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 954</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 83,704</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 156,851</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,852</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 162,703</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$658</span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';">), XPS (</span><span style="font-family:'Verdana';">$3,932</span><span style="font-family:'Verdana';">) and Supply Vision (</span><span style="font-family:'Verdana';">$413</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61,096</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,573</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 115,561</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,948</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9,425</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,670</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26,043</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 51</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 978</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,099</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,247</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 142,703</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 835</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 718</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (367)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (22)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,483)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (532)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,404)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (336)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,196)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (132)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,664)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 477</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,230)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 54</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (597)</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 22,150</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,640</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 20,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40,440</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 194</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,900</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,527</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,529</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,763</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 78,616</span></p></td></tr><tr><td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,247</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';"> 142,703</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock', window );">Schedule of acquired intangible assets are being amortized over their estimated useful lives</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OCR</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASD</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">BoxTop</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">MCP</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Seller-cloud</b></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">8 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">12 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">10 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="-sec-ix-hidden:Hidden_N7pYUxv4gkKjaFXQZFbtjA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">3</span></span><span style="font-family:'Verdana';">-</span><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Aptos Narrow';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">GroundCloud</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Localz</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">9 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock', window );">Schedule of business acquisition on pro forma information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 675,556</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 626,643</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 581,614</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 142,171</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 107,548</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 90,488</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.26</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.07</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.63</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.24</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.05</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaInformationTextBlock</td>
</tr>
<tr>
<td style="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_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="padding-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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.</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 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts.</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 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-3<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock</td>
</tr>
<tr>
<td style="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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625472656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Measurements</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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock', window );">Schedule of financial instruments measured at fair value on recurring basis</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January 31, 2025:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,372</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,372</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January 31, 2024:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,206</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,206</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,146</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,146</b></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock', window );">Schedule of changes in fair value measurements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 30,949</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,550</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (31,688)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,334</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,146</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,043</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (34,210)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 707</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (12)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 820<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 derivative assets at fair value.</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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618338064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Schedule of trade accounts receivable</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54,702</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,268</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (749)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (699)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 53,953</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51,569</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Schedule of changes in provision for credit losses</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for&#160;Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,545</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 924</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,770)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 699</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,676</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,611)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (15)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 749</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allowance for credit loss 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/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.</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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3,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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock</td>
</tr>
<tr>
<td style="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>51
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625288080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Receivables (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_dsgx_OtherReceivablesDisclosureAbstract', window );"><strong>Other Receivables</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_dsgx_OtherReceivablesTableTextBlock', window );">Schedule of other receivables</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,931</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,193</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,931</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,193</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_OtherReceivablesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_OtherReceivablesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_OtherReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 other receivables.</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;">dsgx_OtherReceivablesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625382880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Prepaid Expenses and Other (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_PrepaidExpenseAndOtherAssetsCurrentAbstract', window );"><strong>Prepaid Expenses and Other</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_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock', window );">Schedule of prepaid expenses and other</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Prepaid expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 18,457</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 16,909</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_-c-HgOnF9kGzA58VCMLhTg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Equity derivative contracts (Note 4)</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,372</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 16,206</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 715</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 353</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45,544</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33,468</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671720780128">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,261</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 10.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 48,943</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,193</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,432</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 718</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 994</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,430</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,314</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 497</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43,637</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 54,180</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,507</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38,825</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,076</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,287</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 529</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 730</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,044</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,786</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,156</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42,628</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,481</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,552</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>54
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625346576">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_IntangibleAssetsNetExcludingGoodwillAbstract', 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 intangible assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 354,049</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 299,524</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 466,832</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 403,944</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,139</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16,483</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,911</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 849,506</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 728,518</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 189,908</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 172,026</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 316,506</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 285,148</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,889</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,227</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,933</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,070</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 528,236</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 477,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 321,270</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 251,047</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625328416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_dsgx_GoodwillDisclosureAbstract', window );"><strong>Goodwill</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_ScheduleOfGoodwillTextBlock', window );">Schedule of goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 760,413</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 675,647</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GroundCloud</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 82,750</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Localz</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 954</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of OCR</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 52,112</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of ASD</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,604</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of BoxTop</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,747</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of MCP</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,429</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Sellercloud</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 72,059</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (16,609)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,062</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 924,755</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 760,413</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_GoodwillDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Goodwill Disclosure [Abstract]</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;">dsgx_GoodwillDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-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_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625536704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_AccruedLiabilitiesCurrentAbstract', window );"><strong>Accrued 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_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of accrued liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 55,105</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,075</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued contingent acquisition consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,674</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,146</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,823</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,577</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 14,054</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,026</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 79,656</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 91,824</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618820544">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_LeaseCostTableTextBlock', window );">Schedule of components of operating lease expense</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,656</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,169</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,182</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">508</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">597</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">636</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,164</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,766</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,818</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,028</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3,996</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,240</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New right-of-use assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,706</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,239</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">864</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.0</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.1</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of maturities for operating lease liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,571</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,510</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,671</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 596</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2030</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 219</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2031 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,567</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (671)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,896</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,178</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4,718</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625366432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Share Capital</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_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock', window );">Schedule of common shares outstanding</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 85,183</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,820</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,756</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Shares issued:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 423</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 363</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Issuance of common shares</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Acquisitions (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 85,606</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 85,183</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,820</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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>59
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618830944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of computation of basic and diluted earnings per share</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (&#8220;EPS&#8221;) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">143,273</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">115,907</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">102,236</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">85,443</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">85,068</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">84,791</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">587</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">505</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">455</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,293</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">1,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">1,205</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">87,323</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">86,818</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">86,451</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.36</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.21</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.34</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.18</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>60
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671622430256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,407</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 940</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,440</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,197</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,468</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,744</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,788</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,371</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,017</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19,962</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,480</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,667</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of weighted-average assumptions</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 30.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of stock option activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,593,433</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45.54</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 278,845</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 79.80</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (285,808)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33.06</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (17,919)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 62.30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,568,551</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52.31</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 54.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 280,658</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 88.82</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (332,109)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.25</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (15,199)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 77.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,501,901</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 91.6</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,501,901</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 91.6</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;">Exercisable at  January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,091,499</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54.70</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 73.5</b></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock', window );">Schedule of unvested stock options activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Grant-Date&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock&#160;Options&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fair&#160;Value&#160;per&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 488,821</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16.11</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 278,845</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.19</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (303,628)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17.74</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (17,485)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18.29</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 446,553</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 20.67</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 280,658</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29.53</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (301,921)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 21.88</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (14,888)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 25.16</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 410,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 25.21</b></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock', window );">Schedule of performance share units activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 915,233</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38.41</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 67.9</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 95,134</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 105.96</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 68,005</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 53.80</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (87,354)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14.29</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,475)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 81.82</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 988,543</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 53.81</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 86.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 92,873</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 109.77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 40,477</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 80.11</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (109,820)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19.88</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3,428)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 80.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,008,645</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62.92</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123.1</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,008,645</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62.92</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123.1</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 726,075</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 47.45</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 88.6</b></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of restricted share units activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 474,631</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 32.44</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61,774</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 79.89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (53,898)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8.52</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (413)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 60.66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 482,094</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40.19</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62,597</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 88.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (54,173)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13.36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (829)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 70.74</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 489,689</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48.48</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 59.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 489,689</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48.48</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 59.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 427,613</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43.14</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 52.2</b></p></td></tr></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_dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock', window );">Schedule of cash settled restricted share unit plan activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,583</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7,879</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (11,092)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,370</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,579</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (7,333)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (599)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">12,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.7</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.7</b></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash settled under restricted share units.</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;">dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.</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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number and weighted-average grant date fair value for outstanding performance shares.</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> -Subparagraph (c)<br> -Paragraph 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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock</td>
</tr>
<tr>
<td style="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>61
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625355472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Schedule of Income before Income Tax, Domestic and Foreign</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 60,119</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 53,246</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 49,158</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 92,637</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 62,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51,268</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 38,877</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,560</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 33,302</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151,152</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 133,728</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of components income tax of expense (recovery)</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,282</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,376</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,673</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 18,020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,532</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,085</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,100</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,315</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,490</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 53,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,223</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 28,248</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3,875)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,369)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,059</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 585</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,060)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,888)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,752)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,451</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 73</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5,042)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,978)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,244</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of deferred tax assets and liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accrued liabilities not currently deductible</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 10,326</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 11,736</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accumulated losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 2,813</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 2,397</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 9,653</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 9,088</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Research and development expenditures and tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 9,683</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 7,680</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 32,475</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 30,901</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (53,346)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (42,423)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Temporary difference on equity derivative and related party debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (6,990)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (5,513)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (60,336)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (47,936)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (27,861)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (17,035)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (2,464)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (1,969)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes, net of valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (30,325)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (19,004)</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of effective income tax rate reconciliation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151,152</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 133,728</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Combined basic Canadian statutory rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense based on the above rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 50,783</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 40,055</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,438</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Increase (decrease) in income taxes resulting from:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Permanent differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,490</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 124</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 590</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of differences between Canadian and foreign tax rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (2,042)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,293)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,859)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of rate changes on current year timing differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (424)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (48)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (219)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Change in estimates relating to prior periods</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,888)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (972)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase (decrease) in accruals for uncertain tax positions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (544)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (117)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,181)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 564</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 263</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (155)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Research tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (2,230)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,488)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (734)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other, including foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 697</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 637</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 584</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock', window );">Schedule of operating loss carryforwards</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">United</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Asia Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 59</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 59</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 191</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 50</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 188</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 146</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2030</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 237</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 375</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 310</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 488</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 798</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Indefinite</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 532</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,326</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,858</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,256</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,326</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,033</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,615</b></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of unrecognized tax benefits roll forward</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,153</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,120</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Gross increases &#8211; current period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,476</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,946</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lapsing due to statutes of limitations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (2,098)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,913)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,153</span></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Paragraph 9<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Paragraph 12<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income before income tax between domestic and foreign jurisdictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.</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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_SummaryOfOperatingLossCarryforwardsTextBlock</td>
</tr>
<tr>
<td style="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>62
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625329328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Schedule of the changes in the contract assets balance</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 69,399</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (56,102)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 72,483</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 115</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 82</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 85,977</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (68,389)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 86,328</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,195</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (903)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 105,208</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 104,230</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 978</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,222</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,291)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,104</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (6)</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,029</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,585)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,008</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (31)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,421</b></p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617304368">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock', window );">Schedule of components of other charges</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,803</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,697</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,560</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration accretion and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 707</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 16,334</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,804</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 956</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,618</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,649</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,441</span></p></td></tr></table><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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember', window );">Fiscal 2024 Restructuring Plan</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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of changes in restructuring plan</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Office&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Closures</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 442</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 442</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Accruals and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 112</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 178</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Cash draw downs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (503)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (112)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (615)</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Non-cash draw downs and foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5)</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr></table><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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember', window );">Fiscal 2025 Restructuring Plan</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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of changes in restructuring plan</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accruals and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 778</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 778</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash draw downs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (616)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (616)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 162</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 162</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 each detailed component of other operating costs and expenses that are applicable to sales and revenues, but not included in the cost of sales in the income statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost. This element may also include a description of any reversal and other adjustment made during the period to the amount of an accrued liability for restructuring activities. This element may be used to encapsulate the roll forward presentations of an entity's restructuring reserve by type of cost and in total, and explanation of changes that occurred in 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> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock</td>
</tr>
<tr>
<td style="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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember</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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember</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>64
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625455424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Cash Flow Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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_SupplementalCashFlowElementsAbstract', window );"><strong>Supplemental Cash Flow Information</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_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock', window );">Schedule of cash flow changes in operating asset and liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,299</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (6,566)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,802)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (683)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,589</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (14,712)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (8,039)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,560)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,868</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,180</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (620)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (9,017)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,270</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,433</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 956</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (446)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 753</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (349)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 325</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (95)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,825</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,141</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,142</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Changes in operating assets and liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (13,932)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,182</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 7,793</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental cash flow information for the periods presented.</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_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock</td>
</tr>
<tr>
<td style="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_SupplementalCashFlowElementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowElementsAbstract</td>
</tr>
<tr>
<td style="padding-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>65
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671726221264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 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>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of segment breakdown of measures of profit</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#0f4761;font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 572,931</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 486,014</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Less:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Headcount-related costs, including stock compensation expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 249,887</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 226,897</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 195,261</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cost of revenues and network charges (exclusive of other items presented separately)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67,212</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 53,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 33,996</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">SaaS software and maintenance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 23,066</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,908</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,476</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other segment items</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54,723</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 63,505</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 44,445</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,474</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,225</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 69,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,501</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 469,876</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 430,082</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 355,580</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income from operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 181,124</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,849</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 130,434</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,004)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,363)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,167)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,513</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,666</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,461</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 191,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 151,152</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 133,728</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Net income</b><span style="font-family:'Verdana';">, as reported on Consolidated Statements of Operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 143,273</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 115,907</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102,236</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Adjustments to reconcile to Adjusted EBITDA:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,004</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,363</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,167</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Investment and other income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (11,513)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (9,666)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (4,461)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,360</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,245</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,492</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Depreciation expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,474</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,225</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 69,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,501</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 60,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Stock-based compensation and related taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 21,098</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,005</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,920</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other charges (Note 20)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 21,649</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,441</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 284,676</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 247,478</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 215,197</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock', window );">Schedule of disaggregated revenue information by geographic location of customer and revenue</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 439,103</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 382,176</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 307,102</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 153,004</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 137,164</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 126,942</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,254</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,422</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 34,547</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19,639</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,169</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,423</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 572,931</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 486,014</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock', window );">Schedule of disaggregated revenue information by product and services</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2023</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,715</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,326</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,385</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 590,243</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 520,930</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 435,734</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 55,042</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 46,675</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41,895</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 651,000</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 572,931</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 486,014</span></p></td></tr></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock', window );">Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 246,048</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 178,843</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 49,737</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26,298</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,007</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 47,072</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,959</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,386</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 333,751</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 262,599</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 entity-wide revenues from external customers for each product or service or each group of similar products or services if the information is not provided as part of the reportable operating segment information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<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.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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-25<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623660640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign currency re-measurement loss</a></td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="nump">$ 1,000,000.0<span></span>
</td>
<td class="nump">$ 1,200,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_GoodwillImpairmentLoss', window );">Goodwill impairment loss</a></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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based compensation arrangement by share-based payment award, award vesting period (Year)</a></td>
<td class="text">5 years<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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based compensation arrangement by share-based payment award, expiration period (Year)</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based compensation arrangement by share-based payment award, award vesting period (Year)</a></td>
<td class="text">3 years<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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based compensation arrangement by share-based payment award, expiration period (Year)</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based compensation arrangement by share-based payment award, award vesting period (Year)</a></td>
<td class="text">3 years<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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based compensation arrangement by share-based payment award, expiration period (Year)</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=dsgx_DeferredShareUnitPlanMember', window );">DSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BaseAnnualFeePercent', window );">Base annual fee, percent</a></td>
<td class="nump">50.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold improvements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration', window );">Property, Plant, and Equipment, Useful Life, Term, Description [Extensible Enumeration]</a></td>
<td class="text">us-gaap:UsefulLifeShorterOfTermOfLeaseOrAssetUtilityMember<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Equipment installed with customers</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property and equipment useful life (Year)</a></td>
<td class="text">3 years<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_RangeAxis=srt_MinimumMember', window );">Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals', window );">Costs to obtain a contract with a customer, period of benefit including renewals (Year)</a></td>
<td class="text">4 years<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_dsgx_CashSettledRestrictedShareUnitsVestingPeriod', window );">Cash settled restricted share units, vesting period (Year)</a></td>
<td class="text">3 years<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_RangeAxis=srt_MinimumMember', window );">Minimum | Director's and officer's</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based compensation arrangement by share-based payment award, award vesting period (Year)</a></td>
<td class="text">3 years<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_RangeAxis=srt_MinimumMember', window );">Minimum | Computer equipment and software</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property and equipment useful life (Year)</a></td>
<td class="text">1 year<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_RangeAxis=srt_MinimumMember', window );">Minimum | Furniture and fixtures</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property and equipment useful life (Year)</a></td>
<td class="text">3 years<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_RangeAxis=srt_MaximumMember', window );">Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals', window );">Costs to obtain a contract with a customer, period of benefit including renewals (Year)</a></td>
<td class="text">6 years<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_dsgx_CashSettledRestrictedShareUnitsVestingPeriod', window );">Cash settled restricted share units, vesting period (Year)</a></td>
<td class="text">5 years<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_RangeAxis=srt_MaximumMember', window );">Maximum | Director's and officer's</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based compensation arrangement by share-based payment award, award vesting period (Year)</a></td>
<td class="text">5 years<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_RangeAxis=srt_MaximumMember', window );">Maximum | Computer equipment and software</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property and equipment useful life (Year)</a></td>
<td class="text">13 years<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_RangeAxis=srt_MaximumMember', window );">Maximum | Furniture and fixtures</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property and equipment useful life (Year)</a></td>
<td class="text">14 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">20 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">4 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">12 years<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=us-gaap_TradeNamesMember', window );">Trade names | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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=us-gaap_TradeNamesMember', window );">Trade names | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">15 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">12 years<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_dsgx_BaseAnnualFeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 base annual fee percentage required for Directors participating in a share-based compensation plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_BaseAnnualFeePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CashSettledRestrictedShareUnitsVestingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_CashSettledRestrictedShareUnitsVestingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.</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;">dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482014/830-20-35-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481956/830-20-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481926/830-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481839/830-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_ForeignCurrencyTransactionGainLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-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_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 description of term of useful life for property, plant, and equipment when not stated as numeric value.</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 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482190/360-10-35-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_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=dsgx_DeferredShareUnitPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_DeferredShareUnitPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=dsgx_DirectorsAndOfficersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_DirectorsAndOfficersMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_ExistingTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncompeteAgreementsMember</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>67
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625784368">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Details)<br> $ in Thousands, &#8364; in Millions, &#163; in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Oct. 11, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 17, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 10, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 10, 2024 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Apr. 19, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 19, 2024 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Mar. 28, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 20, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 14, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 05, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 03, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 21, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 09, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2025 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 290,204<span></span>
</td>
<td class="nump">$ 142,700<span></span>
</td>
<td class="nump">$ 115,561<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">8,674<span></span>
</td>
<td class="nump">35,146<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,803<span></span>
</td>
<td class="nump">3,697<span></span>
</td>
<td class="nump">2,560<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 38,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,664<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 60,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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 13,900<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100<span></span>
</td>
<td class="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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,228<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_XpsTechnologyLlcMember', window );">XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 61,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 75,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 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>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 11,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 11,573<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 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>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 136,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">136,843<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 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>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 19,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember', window );">Localz Pty Ltd</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,857<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_Fiscal2025AcquisitionsMember', window );">Fiscal 2025 acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,800<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_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual', window );">Amount of revenue recognized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">36,400<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_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual', window );">Amount of net income recognized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 82,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">82,849<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Estimate of contractual cash flows not expected to be collected</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</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">$ 62,500<span></span>
</td>
<td class="nump">&#8364; 58.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">62,522<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_PaymentForContingentConsiderationLiabilityInvestingActivities', window );">Contingent consideration paid out of investing activities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,100<span></span>
</td>
<td class="nump">&#163; 9.5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,111<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 22,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">22,508<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition purchase price, net of cash acquired</a></td>
<td class="nump">$ 110,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 110,214<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="nump">$ 20,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">2 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 5,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.</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;">dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the best estimate at the acquisition date of the contractual cash flows not expected to be collected, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationAcquiredReceivablesFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 acquired receivable from business combination, excluding certain loans and debt securities acquired in transfer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquiredReceivablesFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationAcquiredReceivablesGrossContractualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the gross contractual amounts receivable, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity 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 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479405/805-10-25-23<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be 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> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479668/805-30-25-6<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479613/805-30-35-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of revenue of the acquiree since the acquisition date included in the consolidated income statement 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentForContingentConsiderationLiabilityInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow, made soon after acquisition date of business combination, to settle contingent consideration 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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 230<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_PaymentForContingentConsiderationLiabilityInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</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 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsTechnologyLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_XpsTechnologyLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_Fiscal2025AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_Fiscal2025AcquisitionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member</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>68
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671599560416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)<br> $ in Thousands, &#8364; in Millions, &#163; in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Oct. 11, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 17, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 10, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 10, 2024 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Apr. 19, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 19, 2024 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Mar. 28, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 20, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 14, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 05, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 21, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 09, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2025 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 290,204<span></span>
</td>
<td class="nump">$ 142,700<span></span>
</td>
<td class="nump">$ 115,561<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,043<span></span>
</td>
<td class="nump">19,550<span></span>
</td>
<td class="nump">26,043<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">248<span></span>
</td>
<td class="nump">453<span></span>
</td>
<td class="nump">1,099<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">297,495<span></span>
</td>
<td class="nump">162,703<span></span>
</td>
<td class="nump">142,703<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,122<span></span>
</td>
<td class="nump">3,864<span></span>
</td>
<td class="nump">4,471<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">77<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_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets', window );">Right-of-use assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">245<span></span>
</td>
<td class="nump">144<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(4,099)<span></span>
</td>
<td class="num">(3,535)<span></span>
</td>
<td class="num">(2,404)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(13,981)<span></span>
</td>
<td class="num">(1,601)<span></span>
</td>
<td class="num">(2,664)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(245)<span></span>
</td>
<td class="num">(144)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(18,169)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(26,025)<span></span>
</td>
<td class="num">(1,272)<span></span>
</td>
<td class="num">(597)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">180,951<span></span>
</td>
<td class="nump">83,704<span></span>
</td>
<td class="nump">78,616<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">61,573<span></span>
</td>
<td class="nump">29,400<span></span>
</td>
<td class="nump">22,150<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=dsgx_ExistingTechnologyMember', window );">Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">76,821<span></span>
</td>
<td class="nump">48,771<span></span>
</td>
<td class="nump">40,440<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,223<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="nump">194<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,952<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">1,900<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 38,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,664<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">13,948<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">51<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">52,663<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">469<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(367)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">102<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,797<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,900<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,100<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">700<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,228<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">66<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,294<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">835<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(22)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(336)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">477<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,527<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">650<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,640<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">61,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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,425<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">978<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">71,499<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,483)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,196)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,230)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">43,529<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">8,100<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 11,600<span></span>
</td>
<td class="text">&#160;<span></span>
</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">11,573<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,670<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,247<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">718<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(532)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(132)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,763<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,500<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,700<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">30<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 82,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">82,849<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">164<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">83,013<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,669<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">77<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_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets', window );">Right-of-use assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">59<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">13<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(906)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(11,145)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(59)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(13,107)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(20,399)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">52,112<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_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">24,200<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_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,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_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="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_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</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">$ 62,500<span></span>
</td>
<td class="nump">&#8364; 58.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">62,522<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">124<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">62,646<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,445<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,108)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(330)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,319)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(306)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">35,604<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,247<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,377<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">298<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">426<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,100<span></span>
</td>
<td class="nump">&#163; 9.5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,111<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(19)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,092<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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<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_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets', window );">Right-of-use assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">186<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(488)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(454)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(186)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,743)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,626)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,747<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,926<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,944<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">76<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 22,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">22,508<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,679<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(217)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,970<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">17<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,816)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,959)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">13,429<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,900<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">8,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">150<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">150<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="nump">$ 110,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">110,214<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,364<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">196<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">115,774<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">933<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(437)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(236)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">265<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">72,059<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">17,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,200<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">250<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 700<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_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember', window );">Localz Pty Ltd</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,857<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(5)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,852<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">619<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(227)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,465)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,073)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">954<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_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember', window );">Localz Pty Ltd | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,971<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_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired related to acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 136,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">136,843<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">19,550<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">458<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">156,851<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,245<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_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets', window );">Right-of-use assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">144<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,308)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(136)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(144)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(199)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">82,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud | Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">29,400<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_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud | Existing technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">42,800<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_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud | Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,100<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_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud | Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract', window );"><strong>Allocated to:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business acquisition cost of acquired entity working capital adjustments.</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;">dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 right-of-use assets acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.</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;">dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</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 30<br> -Paragraph 8<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479637/805-30-30-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 7<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479637/805-30-30-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_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 incurred by the acquirer as part of consideration transferred in a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479668/805-30-25-5<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 8<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479637/805-30-30-8<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 7<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479637/805-30-30-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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 lease obligation assumed in business combination.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 identifiable intangible assets recognized as of the acquisition date.</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 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract</td>
</tr>
<tr>
<td style="padding-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</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 13<br> -Subparagraph (b)<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_ExistingTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember</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>69
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671600277584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 658<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,932<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember', window );">Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 413<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,381<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_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember', window );">Localz Pty Ltd</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">$ 5,743<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">2,475<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">1,012<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">2,105<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Seller-cloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">$ 362<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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAcquiredFromAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 associated with the acquisition of business during the period (for example, cash that was held by the acquired 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> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (b)<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_CashAcquiredFromAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671620601344">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Acquired Intangible Assets Useful Lives (Details)<br></strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">20 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">13 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Foxtrot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">13 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">11 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">11 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">13 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">13 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | ASD</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">13 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">13 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">8 years<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=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Seller-cloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">12 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">4 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">12 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing technologies | Foxtrot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing technologies | XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing technologies | Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing technologies | GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing technologies | Localz Pty Ltd</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing technologies | OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | ASD</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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=dsgx_ExistingTechnologyMember', window );">Existing technologies | Seller-cloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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=us-gaap_TradeNamesMember', window );">Trade names | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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=us-gaap_TradeNamesMember', window );">Trade names | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">15 years<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=us-gaap_TradeNamesMember', window );">Trade names | Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">9 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">10 years<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=us-gaap_TradeNamesMember', window );">Trade names | ASD | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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=us-gaap_TradeNamesMember', window );">Trade names | BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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=us-gaap_TradeNamesMember', window );">Trade names | MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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=us-gaap_TradeNamesMember', window );">Trade names | Seller-cloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">12 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Net CHB, LLC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | XPS</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Supply Vision</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | GroundCloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | OCR</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | ASD</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | BoxTop</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | MCP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Seller-cloud</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Acquisition</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_FoxtrotMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_XpsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_ExistingTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671719751472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Pro Forma Results of Operations (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Acquisitions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Revenue</a></td>
<td class="nump">$ 675,556<span></span>
</td>
<td class="nump">$ 626,643<span></span>
</td>
<td class="nump">$ 581,614<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 142,171<span></span>
</td>
<td class="nump">$ 107,548<span></span>
</td>
<td class="nump">$ 90,488<span></span>
</td>
</tr>
<tr class="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>Earnings 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 1.66<span></span>
</td>
<td class="nump">$ 1.26<span></span>
</td>
<td class="nump">$ 1.07<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 1.63<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 1.05<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_BusinessAcquisitionProFormaEarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a 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/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionProFormaEarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a 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/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionsProFormaNetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a 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 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessAcquisitionsProFormaRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of 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 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="padding-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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625528512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Details)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jan. 31, 2025 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Equity derivatives, number of common shares held (in shares) | shares</a></td>
<td class="nump">332,473<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_dsgx_DerivativeInstrumentCommonSharesHeldPerShare', window );">Derivative, common shares weighted average price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 36.80<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_dsgx_PaymentForContingentConsiderationLiabilityTotal', window );">Contingent consideration paid</a></td>
<td class="nump">$ 34,200<span></span>
</td>
<td class="nump">$ 31,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Earn-out arrangements accrued at the time of acquisition</a></td>
<td class="nump">9,223<span></span>
</td>
<td class="nump">19,084<span></span>
</td>
<td class="nump">$ 5,215<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities', window );">Contingent consideration paid out of cash flow from operating activities</a></td>
<td class="nump">$ 25,000<span></span>
</td>
<td class="nump">12,600<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_RangeAxis=srt_MinimumMember', window );">Minimum | Revenue growth rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">0.10<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_RangeAxis=srt_MinimumMember', window );">Minimum | Discount rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">0.10<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_RangeAxis=srt_MaximumMember', window );">Maximum | Revenue growth rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">0.13<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_RangeAxis=srt_MaximumMember', window );">Maximum | Discount rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">0.16<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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and administrative expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_ExpensesAndRecoveriesNet', window );">Expense (recovery)</a></td>
<td class="num">$ (11,800)<span></span>
</td>
<td class="num">$ (4,600)<span></span>
</td>
<td class="num">$ (1,300)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_DerivativeInstrumentCommonSharesHeldPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 per share amount of common shares held by certain derivative instruments entered into by the company.</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;">dsgx_DerivativeInstrumentCommonSharesHeldPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 held by certain derivative instruments entered into by the company.</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;">dsgx_DerivativeInstrumentSharesOfCommonStockHeld</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ExpensesAndRecoveriesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 (recovery) related to operating expenses in the operation statement.</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;">dsgx_ExpensesAndRecoveriesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_PaymentForContingentConsiderationLiabilityTotal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow made for the settlement of contingent consideration liability related to business combinations of the entity during the reporting 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;">dsgx_PaymentForContingentConsiderationLiabilityTotal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 input used to measure contingent consideration liability from business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:decimalItemType</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems</td>
</tr>
<tr>
<td style="padding-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_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.</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 15<br> -Subparagraph (f)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentForContingentConsiderationLiabilityOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability exceeding amount recognized at acquisition date. Includes, but is not limited to, measurement period adjustment and less amount paid soon after acquisition date.</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 17<br> -Subparagraph (ee)<br> -SubTopic 10<br> -Topic 230<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_PaymentForContingentConsiderationLiabilityOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember</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_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671619606464">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Derivative instruments at fair value (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Fair Value Measurements</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_DerivativeAssets', window );">Equity derivative contracts</a></td>
<td class="nump">$ 26,372<span></span>
</td>
<td class="nump">$ 16,206<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">8,674<span></span>
</td>
<td class="nump">35,146<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Level 2</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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Fair Value Measurements</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_DerivativeAssets', window );">Equity derivative contracts</a></td>
<td class="nump">26,372<span></span>
</td>
<td class="nump">16,206<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Fair Value Measurements</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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 8,674<span></span>
</td>
<td class="nump">$ 35,146<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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479668/805-30-25-6<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479613/805-30-35-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript: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 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-12<br><br>Reference 2: 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 (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 3: 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/2147480493/946-210-55-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 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 5: 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 (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 6: 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 (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 7: 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/2147480524/946-210-50-1<br><br>Reference 8: 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 (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-1<br><br>Reference 9: 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 (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-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 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-1<br><br>Reference 11: 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 (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 13: 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(3)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H)(Footnote 7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5C<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5C<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483466/210-20-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483444/210-20-55-22<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483444/210-20-55-10<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems</td>
</tr>
<tr>
<td style="padding-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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623717680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Changes in fair value measurements (Details) - Level 3 - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems', window );"><strong>Fair value measurements in Level 3 of the fair value inputs</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at the beginning</a></td>
<td class="nump">$ 35,146<span></span>
</td>
<td class="nump">$ 30,949<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases', window );">Increase from acquisitions</a></td>
<td class="nump">7,043<span></span>
</td>
<td class="nump">19,550<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements', window );">Cash payments</a></td>
<td class="num">(34,210)<span></span>
</td>
<td class="num">(31,688)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Charges through profit or loss</a></td>
<td class="nump">707<span></span>
</td>
<td class="nump">16,334<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_dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange', window );">Effect of movements in foreign exchange and other</a></td>
<td class="num">(12)<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at the end</a></td>
<td class="nump">$ 8,674<span></span>
</td>
<td class="nump">$ 35,146<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).</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;">dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems</td>
</tr>
<tr>
<td style="padding-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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</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 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</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 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 820<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618810800">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Trade Accounts Receivable (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGrossCurrent', window );">Trade accounts receivable</a></td>
<td class="nump">$ 54,702<span></span>
</td>
<td class="nump">$ 52,268<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Less: Provision for credit losses</a></td>
<td class="num">(749)<span></span>
</td>
<td class="num">(699)<span></span>
</td>
<td class="num">$ (1,545)<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_AccountsReceivableNetCurrent', window );">Trade accounts receivable, net</a></td>
<td class="nump">$ 53,953<span></span>
</td>
<td class="nump">$ 51,569<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_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 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/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(3)(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/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<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 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><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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/2003/role/disclosureRef<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><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481990/310-10-45-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-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>76
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617533216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable - Trade receivables (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_UnbilledReceivablesCurrent', window );">Unbilled receivables</a></td>
<td class="nump">$ 4.6<span></span>
</td>
<td class="nump">$ 2.4<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_dsgx_PercentageOfAccountReceivable', window );">Percentage of account receivable</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_PercentageOfAccountReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represent of percentage item</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;">dsgx_PercentageOfAccountReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-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_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.</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_UnbilledReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>77
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625387424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable - Provision for credit losses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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 );">Beginning Balance</a></td>
<td class="nump">$ 699<span></span>
</td>
<td class="nump">$ 1,545<span></span>
</td>
</tr>
<tr class="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 );">Current period provision for expected losses</a></td>
<td class="nump">1,676<span></span>
</td>
<td class="nump">924<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs charged against the provision</a></td>
<td class="num">(1,611)<span></span>
</td>
<td class="num">(1,770)<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_dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(15)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Ending Balance</a></td>
<td class="nump">$ 749<span></span>
</td>
<td class="nump">$ 699<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represent the amount of effects of foreign exchange currency movement against the allowance.</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;">dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of direct write-downs of accounts receivable charged against the allowance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-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>78
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625261760">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Other Receivables (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_dsgx_OtherReceivablesDisclosureAbstract', window );"><strong>Other Receivables</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_OtherAssetsCurrent', window );">Other receivables</a></td>
<td class="nump">$ 16,931<span></span>
</td>
<td class="nump">$ 12,193<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_OtherReceivablesNetCurrent', window );">Total</a></td>
<td class="nump">$ 16,931<span></span>
</td>
<td class="nump">$ 12,193<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_OtherReceivablesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_OtherReceivablesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_OtherReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, of receivables classified as other, due within one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>79
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625401872">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Other Receivables - Additional information (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jan. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_OtherReceivablesDisclosureAbstract', window );"><strong>Other Receivables</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_dsgx_AmountsRecoverableFromFundsHeldInEscrow', window );">Amounts Recoverable from Funds Held in Escrow - Net working capital adjustments receivable from acquisitions</a></td>
<td class="nump">$ 0.0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_AmountsRecoverableFromFundsHeldInEscrow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recoverable from funds held In escrow related to acquisitions.</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;">dsgx_AmountsRecoverableFromFundsHeldInEscrow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_OtherReceivablesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_OtherReceivablesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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>80
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625413328">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Prepaid Expenses and Other (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract', window );"><strong>Prepaid Expenses and Other</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_PrepaidExpenseCurrent', window );">Prepaid expenses</a></td>
<td class="nump">$ 18,457<span></span>
</td>
<td class="nump">$ 16,909<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetsCurrent', window );">Equity derivative contracts (Note 4)</a></td>
<td class="nump">$ 26,372<span></span>
</td>
<td class="nump">$ 16,206<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration', window );">Derivative Asset, Current, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Prepaid expenses and other<span></span>
</td>
<td class="text">Prepaid expenses and other<span></span>
</td>
</tr>
<tr class="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 );">Inventory</a></td>
<td class="nump">$ 715<span></span>
</td>
<td class="nump">$ 353<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other</a></td>
<td class="nump">$ 45,544<span></span>
</td>
<td class="nump">$ 33,468<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_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates line item in statement of financial position that includes derivative asset 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 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset, expected to be settled within one year or normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript: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 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483466/210-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_DerivativeAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671619736896">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Property and Equipment (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_PropertyPlantAndEquipmentLineItems', 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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 43,637<span></span>
</td>
<td class="nump">$ 54,180<span></span>
</td>
</tr>
<tr class="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 );">Accumulated depreciation</a></td>
<td class="nump">31,156<span></span>
</td>
<td class="nump">42,628<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Net</a></td>
<td class="nump">12,481<span></span>
</td>
<td class="nump">11,552<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember', window );">Computer equipment and software</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_PropertyPlantAndEquipmentLineItems', 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">39,261<span></span>
</td>
<td class="nump">48,943<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Accumulated depreciation</a></td>
<td class="nump">27,507<span></span>
</td>
<td class="nump">38,825<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and fixtures</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_PropertyPlantAndEquipmentLineItems', 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">1,193<span></span>
</td>
<td class="nump">1,432<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Accumulated depreciation</a></td>
<td class="nump">1,076<span></span>
</td>
<td class="nump">1,287<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold improvements</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_PropertyPlantAndEquipmentLineItems', 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">718<span></span>
</td>
<td class="nump">994<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Accumulated depreciation</a></td>
<td class="nump">529<span></span>
</td>
<td class="nump">730<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=dsgx_EquipmentInstalledWithCustomersMember', window );">Equipment installed with customers</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_PropertyPlantAndEquipmentLineItems', 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">2,430<span></span>
</td>
<td class="nump">2,314<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Accumulated depreciation</a></td>
<td class="nump">2,044<span></span>
</td>
<td class="nump">1,786<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_AssetUnderConstructionMember', window );">Assets under construction</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_PropertyPlantAndEquipmentLineItems', 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 35<span></span>
</td>
<td class="nump">$ 497<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/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_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/2147479440/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_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 4: 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/2147480842/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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=dsgx_EquipmentInstalledWithCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=dsgx_EquipmentInstalledWithCustomersMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_AssetUnderConstructionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_AssetUnderConstructionMember</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>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623639600">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>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_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">$ 849,506<span></span>
</td>
<td class="nump">$ 728,518<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="nump">528,236<span></span>
</td>
<td class="nump">477,471<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net</a></td>
<td class="nump">321,270<span></span>
</td>
<td class="nump">251,047<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Intangible Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">354,049<span></span>
</td>
<td class="nump">299,524<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="nump">189,908<span></span>
</td>
<td class="nump">172,026<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Existing technology</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Intangible Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">466,832<span></span>
</td>
<td class="nump">403,944<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="nump">316,506<span></span>
</td>
<td class="nump">285,148<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Intangible Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">12,142<span></span>
</td>
<td class="nump">10,139<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="nump">8,889<span></span>
</td>
<td class="nump">8,227<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Intangible Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">16,483<span></span>
</td>
<td class="nump">14,911<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="nump">$ 12,933<span></span>
</td>
<td class="nump">$ 12,070<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/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><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)(1)<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_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/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/2147483147/928-340-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DevelopedTechnologyRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671732852656">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Additional information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_IntangibleAssetsNetExcludingGoodwillAbstract', 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_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">$ 321,270<span></span>
</td>
<td class="nump">$ 251,047<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2026</a></td>
<td class="nump">71,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2027</a></td>
<td class="nump">56,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2028</a></td>
<td class="nump">49,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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2029</a></td>
<td class="nump">41,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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2030</a></td>
<td class="nump">29,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 73,800<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_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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<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_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://fasb.org/us-gaap/role/ref/legacyRef<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_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://fasb.org/us-gaap/role/ref/legacyRef<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_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://fasb.org/us-gaap/role/ref/legacyRef<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_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://fasb.org/us-gaap/role/ref/legacyRef<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_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_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/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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="padding-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>84
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617401904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_GoodwillLineItems', window );"><strong>Goodwill</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at beginning of period</a></td>
<td class="nump">$ 760,413<span></span>
</td>
<td class="nump">$ 675,647<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments', window );">Adjustments on account of foreign exchange</a></td>
<td class="num">(16,609)<span></span>
</td>
<td class="nump">1,062<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance at end of period</a></td>
<td class="nump">924,755<span></span>
</td>
<td class="nump">760,413<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember', window );">GroundCloud</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">82,750<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember', window );">Localz</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 954<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember', window );">OCR</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="nump">52,112<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_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember', window );">ASD</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="nump">35,604<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_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember', window );">BoxTop</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="nump">7,747<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_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember', window );">MCP</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="nump">13,429<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_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member', window );">Sellercloud</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_GoodwillLineItems', window );"><strong>Goodwill</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_GoodwillAcquiredDuringPeriod', window );">Acquisition of goodwill</a></td>
<td class="nump">$ 72,059<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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 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 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-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_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GoodwillLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-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_GoodwillLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 16<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479405/805-10-25-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_GoodwillTranslationAndPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessAcquisitionAxis=dsgx_GroundcloudMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_GroundcloudMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_LocalzPtyLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_OcrServicesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_AerospaceSoftwareDevelopmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_BoxtopTechnologiesLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_MyCarrierPortalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member</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>85
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671791132944">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_AccruedLiabilitiesCurrentAbstract', window );"><strong>Accrued 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_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation and benefits</a></td>
<td class="nump">$ 55,105<span></span>
</td>
<td class="nump">$ 43,075<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Accrued contingent acquisition consideration</a></td>
<td class="nump">8,674<span></span>
</td>
<td class="nump">35,146<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedProfessionalFeesCurrent', window );">Accrued professional fees</a></td>
<td class="nump">1,823<span></span>
</td>
<td class="nump">1,577<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other accrued liabilities</a></td>
<td class="nump">14,054<span></span>
</td>
<td class="nump">12,026<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Total</a></td>
<td class="nump">$ 79,656<span></span>
</td>
<td class="nump">$ 91,824<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-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_AccruedProfessionalFeesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedProfessionalFeesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479668/805-30-25-6<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479613/805-30-35-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<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_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>86
<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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617403600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Long-Term Debt (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_DebtInstrumentLineItems', window );"><strong>Long-Term 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Letters of credit outstanding</a></td>
<td class="nump">$ 0.2<span></span>
</td>
<td class="nump">$ 0.2<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving credit facility | Senior secured credit facility</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_DebtInstrumentLineItems', window );"><strong>Long-Term Debt</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_DebtInstrumentTerm', window );">Maturity term (year)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Long-term line of credit drawn amount</a></td>
<td class="nump">$ 0.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Available for use</a></td>
<td class="nump">350.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving credit facility | Senior secured credit facility | Maximum</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_DebtInstrumentLineItems', window );"><strong>Long-Term 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of credit facility</a></td>
<td class="nump">500.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving credit facility | Senior secured credit facility | Minimum</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_DebtInstrumentLineItems', window );"><strong>Long-Term Debt</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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of credit facility</a></td>
<td class="nump">$ 350.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior secured credit facility | Maximum</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_DebtInstrumentLineItems', window );"><strong>Long-Term 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Percentage of undrawn amounts (in percentage)</a></td>
<td class="nump">0.40%<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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior secured credit facility | Maximum | CDOR</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_DebtInstrumentLineItems', window );"><strong>Long-Term Debt</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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Interest rates under the revolving operating portion</a></td>
<td class="nump">2.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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior secured credit facility | Minimum</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_DebtInstrumentLineItems', window );"><strong>Long-Term 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Percentage of undrawn amounts (in percentage)</a></td>
<td class="nump">0.20%<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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior secured credit facility | Minimum | CDOR</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_DebtInstrumentLineItems', window );"><strong>Long-Term Debt</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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Interest rates under the revolving operating portion</a></td>
<td class="nump">0.00%<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_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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(f))<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 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 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69B<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69C<br><br>Reference 7: 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 8: 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 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 10: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<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 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<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 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<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 1D<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<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 (d)<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 1F<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<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 1F<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<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 1F<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 24: 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 25: 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 (c)<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_DebtInstrumentLineItems</td>
</tr>
<tr>
<td style="padding-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_DebtInstrumentTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentTerm</td>
</tr>
<tr>
<td style="padding-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_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of the contingent obligation under letters of credit outstanding as of the reporting date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LineOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</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://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/2147479440/944-210-S99-1<br><br>Reference 3: 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/2147479853/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_LineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember</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_DebtInstrumentAxis=dsgx_SeniorSecuredCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=dsgx_SeniorSecuredCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=dsgx_CanadaOrUsPrimeRateBaOrLiborMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=dsgx_CanadaOrUsPrimeRateBaOrLiborMember</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>87
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671619594672">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases (Details)<br></strong></div></th>
<th class="th"><div>Jan. 31, 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_LesseeOperatingLeaseRemainingLeaseTerm', window );">Operating lease remaining lease term (year)</a></td>
<td class="text">5 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_LesseeOperatingLeaseRenewalTerm', window );">Operating lease renewal term (year)</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_LesseeOperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRemainingLeaseTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal, 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/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(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_LesseeOperatingLeaseRenewalTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618604464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Components of operating lease expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">$ 3,656<span></span>
</td>
<td class="nump">$ 4,169<span></span>
</td>
<td class="nump">$ 4,182<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term lease cost</a></td>
<td class="nump">508<span></span>
</td>
<td class="nump">597<span></span>
</td>
<td class="nump">636<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_LeaseCost', window );">Total operating lease cost</a></td>
<td class="nump">4,164<span></span>
</td>
<td class="nump">4,766<span></span>
</td>
<td class="nump">4,818<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating cash outflows from operating leases included in measurement of lease liabilities</a></td>
<td class="nump">4,028<span></span>
</td>
<td class="nump">3,996<span></span>
</td>
<td class="nump">4,240<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">New right-of-use assets obtained in exchange for lease obligations</a></td>
<td class="nump">$ 3,706<span></span>
</td>
<td class="nump">$ 4,239<span></span>
</td>
<td class="nump">$ 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_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term (years)</a></td>
<td class="text">2 years 10 months 24 days<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate (%)</a></td>
<td class="nump">5.10%<span></span>
</td>
<td class="nump">4.10%<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_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -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_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<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_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 short-term lease cost, excluding expense for lease with term of one month or less.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<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_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>89
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671620194080">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Maturities of operating lease liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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 );">2026</a></td>
<td class="nump">$ 3,571<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 );">2027</a></td>
<td class="nump">2,510<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">2028</a></td>
<td class="nump">1,671<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 );">2029</a></td>
<td class="nump">596<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">2030</a></td>
<td class="nump">219<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">8,567<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="num">(671)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total lease obligations</a></td>
<td class="nump">7,896<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">3,178<span></span>
</td>
<td class="nump">$ 3,075<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">$ 4,718<span></span>
</td>
<td class="nump">$ 3,903<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_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/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/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/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/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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R75.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623277472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments, Contingencies and Guarantees (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_LossContingenciesLineItems', window );"><strong>Commitments, Contingencies and Guarantees</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_dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized', window );">Unrecognized aggregate liability for the unvested DSUs</a></td>
<td class="nump">$ 0<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_dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized', window );">Unrecognized aggregate liability for the unvested CRSUs</a></td>
<td class="nump">$ 1,200<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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Equity derivatives, number of common shares held (in shares)</a></td>
<td class="nump">332,473<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_dsgx_DeferredShareUnitLiabilityNumberOfCommonShares', window );">DSU liability, number of common shares (in shares)</a></td>
<td class="nump">332,473<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 8,674<span></span>
</td>
<td class="nump">$ 35,146<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_LossContingenciesByNatureOfContingencyAxis=dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember', window );">Business combination agreements</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_LossContingenciesLineItems', window );"><strong>Commitments, Contingencies and Guarantees</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember', window );">Supply Vision, GroundCloud, MCP And Sellercloud | Business combination agreements</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_LossContingenciesLineItems', window );"><strong>Commitments, Contingencies and Guarantees</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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="nump">$ 67,500<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 8,700<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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.</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;">dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 settled restricted share units nonvested, total compensation cost not yet recognized.</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;">dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_DeferredShareUnitLiabilityNumberOfCommonShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of common shares for which there is a deferred share unit liability.</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;">dsgx_DeferredShareUnitLiabilityNumberOfCommonShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred share units nonvested, total compensation cost not yet recognized.</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;">dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 held by certain derivative instruments entered into by the company.</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;">dsgx_DerivativeInstrumentSharesOfCommonStockHeld</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be 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> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479668/805-30-25-6<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479613/805-30-35-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-4<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingenciesLineItems</td>
</tr>
<tr>
<td style="padding-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_LossContingenciesByNatureOfContingencyAxis=dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LossContingenciesByNatureOfContingencyAxis=dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember</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>91
<FILENAME>R76.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617045744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 15, 2024</div></th>
<th class="th"><div>Jul. 15, 2022</div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Share Capital</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from stock options exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,400<span></span>
</td>
<td class="nump">$ 9,300<span></span>
</td>
<td class="nump">$ 1,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Payments to satisfy employee tax withholding net share settlements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,745<span></span>
</td>
<td class="nump">$ 4,886<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=dsgx_PSUsAndRSUsMember', window );">PSU and RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Share Capital</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Employee tax withholding for net share settlements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">73,588<span></span>
</td>
<td class="nump">63,330<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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Payments to satisfy employee tax withholding net share settlements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,700<span></span>
</td>
<td class="nump">$ 4,900<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_SubsidiarySaleOfStockAxis=dsgx_BaseShelfProspectus2024Member', window );">2024 Base Shelf Prospectus</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ClassOfStockLineItems', window );"><strong>Share Capital</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_dsgx_ShelfProspectusPeriod', window );">Shelf prospectus period (month)</a></td>
<td class="text">25 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Stock issued during period, shares, new issues (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember', window );">2022 Base Shelf Prospectus</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ClassOfStockLineItems', window );"><strong>Share Capital</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_dsgx_ShelfProspectusPeriod', window );">Shelf prospectus period (month)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">25 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Stock issued during period, shares, new issues (in shares)</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="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_dsgx_ShelfProspectusPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 duration of the shelf prospectus.</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;">dsgx_ShelfProspectusPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ClassOfStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483014/272-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482987/272-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(d))<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 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 6: 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 8: 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 9: 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 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-18<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 16: 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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfStockLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://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/2147481004/946-505-50-2<br><br>Reference 3: 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/2147483575/946-220-S99-3<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(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<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(28))<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 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 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(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_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_AwardTypeAxis=dsgx_PSUsAndRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_PSUsAndRSUsMember</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_SubsidiarySaleOfStockAxis=dsgx_BaseShelfProspectus2024Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsidiarySaleOfStockAxis=dsgx_BaseShelfProspectus2024Member</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_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember</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>92
<FILENAME>R77.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671810320576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital - Common Shares Outstanding (Details) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Share Capital</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Balance, beginning of year (in shares)</a></td>
<td class="nump">85,183,455<span></span>
</td>
<td class="nump">84,820,000<span></span>
</td>
<td class="nump">84,756,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_dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised', window );">Stock options and share units exercised (in shares)</a></td>
<td class="nump">423,000<span></span>
</td>
<td class="nump">363,000<span></span>
</td>
<td class="nump">64,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_CommonStockSharesOutstanding', window );">Balance, end of year (in shares)</a></td>
<td class="nump">85,605,969<span></span>
</td>
<td class="nump">85,183,455<span></span>
</td>
<td class="nump">84,820,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of shares issued from the exercise of stock options and share units.</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;">dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_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://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/2147479617/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/2147483575/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/2147479617/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/2147483575/946-220-S99-3<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(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_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_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R78.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671732859552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share (Details) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicLineItems', window );"><strong>Earnings 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>
</tr>
<tr class="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 );">Antidilutive securities excluded from computation of earnings per share, amount (in shares)</a></td>
<td class="nump">939<span></span>
</td>
<td class="nump">265,694<span></span>
</td>
<td class="nump">1,315<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_StockOptionsTreasuryStockMethodMember', window );">Treasury stock method</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicLineItems', window );"><strong>Earnings 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive securities excluded from computation of earnings per share, amount (in shares)</a></td>
<td class="nump">274,398<span></span>
</td>
<td class="nump">16,562<span></span>
</td>
<td class="nump">589,658<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_PSUsAndRSUsMember', window );">PSU and RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicLineItems', window );"><strong>Earnings 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>
</tr>
<tr class="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 );">Antidilutive securities excluded from computation of earnings per share, amount (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">95,134<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-2<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 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<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_EarningsPerShareBasicLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_StockOptionsTreasuryStockMethodMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_StockOptionsTreasuryStockMethodMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_PSUsAndRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_PSUsAndRSUsMember</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>94
<FILENAME>R79.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623484496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicLineItems', window );"><strong>Earnings 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>
</tr>
<tr class="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</a></td>
<td class="nump">$ 143,273<span></span>
</td>
<td class="nump">$ 115,907<span></span>
</td>
<td class="nump">$ 102,236<span></span>
</td>
</tr>
<tr class="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 );">Weighted average shares outstanding (in shares)</a></td>
<td class="nump">85,443<span></span>
</td>
<td class="nump">85,068<span></span>
</td>
<td class="nump">84,791<span></span>
</td>
</tr>
<tr class="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 );">Weighted average common and common equivalent shares outstanding (in shares)</a></td>
<td class="nump">87,323<span></span>
</td>
<td class="nump">86,818<span></span>
</td>
<td class="nump">86,451<span></span>
</td>
</tr>
<tr class="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 );">Earning per share, Basic</a></td>
<td class="nump">$ 1.68<span></span>
</td>
<td class="nump">$ 1.36<span></span>
</td>
<td class="nump">$ 1.21<span></span>
</td>
</tr>
<tr class="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 );">Earning per share, Diluted</a></td>
<td class="nump">$ 1.64<span></span>
</td>
<td class="nump">$ 1.34<span></span>
</td>
<td class="nump">$ 1.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=us-gaap_EmployeeStockOptionMember', window );">Employee 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicLineItems', window );"><strong>Earnings 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of employee stock options (in shares)</a></td>
<td class="nump">587<span></span>
</td>
<td class="nump">505<span></span>
</td>
<td class="nump">455<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=dsgx_PSUsAndRSUsMember', window );">Restricted stock and Performance share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicLineItems', window );"><strong>Earnings 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of employee stock options (in shares)</a></td>
<td class="nump">1,293<span></span>
</td>
<td class="nump">1,245<span></span>
</td>
<td class="nump">1,205<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 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 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 14: 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/2147483589/942-220-S99-1<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: 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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-2<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 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<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_EarningsPerShareBasicLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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/2147483589/942-220-S99-1<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(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 15: 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 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480454/718-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-23<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-28A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=dsgx_PSUsAndRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_PSUsAndRSUsMember</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>95
<FILENAME>R80.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623210800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Additional information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Amount before allocation of valuation allowances of deferred tax asset</a></td>
<td class="nump">$ 1,200,000<span></span>
</td>
<td class="nump">$ 1,000,000.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions', window );">Tax benefit realized in connection with stock options exercised</a></td>
<td class="nump">$ 200,000<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="nump">$ 400,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of stock options outstanding (in shares)</a></td>
<td class="nump">1,501,901<span></span>
</td>
<td class="nump">1,568,551<span></span>
</td>
<td class="nump">1,593,433<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted, shares (in shares)</a></td>
<td class="nump">280,658<span></span>
</td>
<td class="nump">278,845<span></span>
</td>
<td class="nump">356,014<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted average grant-date fair value of options (in dollars per share)</a></td>
<td class="nump">$ 29.53<span></span>
</td>
<td class="nump">$ 26.19<span></span>
</td>
<td class="nump">$ 18.47<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Intrinsic value of options</a></td>
<td class="nump">$ 20,300,000<span></span>
</td>
<td class="nump">$ 13,200,000<span></span>
</td>
<td class="nump">$ 2,500,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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Range of exercise prices, lower limit (in dollars per share)</a></td>
<td class="nump">$ 26.44<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of exercise prices, upper limit (in dollars per share)</a></td>
<td class="nump">$ 120.82<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total unrecognized compensation cost</a></td>
<td class="nump">$ 9,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted average period (year)</a></td>
<td class="text">2 years 4 months 24 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Grant-date fair value of options (in dollars per share)</a></td>
<td class="nump">$ 6,400,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_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total unrecognized compensation cost</a></td>
<td class="nump">$ 10,600,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted average period (year)</a></td>
<td class="text">1 year 8 months 12 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Fair value other than options (in dollars per share)</a></td>
<td class="nump">$ 6,100,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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total unrecognized compensation cost</a></td>
<td class="nump">$ 5,100,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted average period (year)</a></td>
<td class="text">1 year 8 months 12 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Grant-date fair value of options (in dollars per share)</a></td>
<td class="nump">$ 4,500,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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember', window );">Shareholder-approved stock options plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of shares available for grant (in shares)</a></td>
<td class="nump">2,177,290<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total unrecognized compensation cost</a></td>
<td class="nump">$ 1,501,901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted, shares (in shares)</a></td>
<td class="nump">280,658<span></span>
</td>
<td class="nump">278,845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted average grant-date fair value of options (in dollars per share)</a></td>
<td class="nump">$ 29.53<span></span>
</td>
<td class="nump">$ 26.19<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=dsgx_DeferredShareUnitPlanMember', window );">Deferred share unit plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total unrecognized compensation cost</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_DeferredShareUnitsOutstandingNumber', window );">Deferred share units outstanding number (in shares)</a></td>
<td class="nump">332,473<span></span>
</td>
<td class="nump">311,081<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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred compensation share-based arrangements, liability, current and noncurrent</a></td>
<td class="nump">$ 38,600,000<span></span>
</td>
<td class="nump">$ 27,300,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_dsgx_DeferredShareUnitsGrantsInPeriod', window );">Deferred share units grants in period (in shares)</a></td>
<td class="nump">21,392<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_dsgx_DeferredShareUnitsRedeemedAndSettledInCash', window );">Deferred share units redeemed and settled in cash (in shares)</a></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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense', window );">Deferred share based compensation expense</a></td>
<td class="nump">$ 13,900,000<span></span>
</td>
<td class="nump">6,700,000<span></span>
</td>
<td class="nump">3,200,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_PlanNameAxis=dsgx_CashSettledRestrictedShareUnitMember', window );">Cash-settled restricted share unit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total unrecognized compensation cost</a></td>
<td class="nump">1,200,000<span></span>
</td>
<td class="nump">800,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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred compensation share-based arrangements, liability, current and noncurrent</a></td>
<td class="nump">200,000<span></span>
</td>
<td class="nump">200,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_dsgx_CashSettledRestrictedShareUnitsCompensationExpense', window );">Cash settled restricted share units compensation expense</a></td>
<td class="nump">$ 800,000<span></span>
</td>
<td class="nump">$ 600,000<span></span>
</td>
<td class="nump">$ 800,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_CashSettledRestrictedShareUnitsCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 settled restricted share units compensation expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_CashSettledRestrictedShareUnitsCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_DeferredShareUnitsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred share units granted in 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;">dsgx_DeferredShareUnitsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 outstanding deferred share units as of the reported date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_DeferredShareUnitsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsRedeemedAndSettledInCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number of deferred share units redeemed and settled in cash.</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;">dsgx_DeferredShareUnitsRedeemedAndSettledInCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 recognized from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments), awarded to key employees or individuals. Excludes amount related to plans that cover generally all employees (for example, but not limited to, qualified pension plans).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 carrying value as of the balance sheet date of the liabilities for stock option plans and other equity-based compensation arrangements.</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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<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 (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_ShareholderApprovedStockOptionsPlanMember</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=dsgx_DeferredShareUnitPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_DeferredShareUnitPlanMember</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=dsgx_CashSettledRestrictedShareUnitMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_CashSettledRestrictedShareUnitMember</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>96
<FILENAME>R81.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623128016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">$ 19,962<span></span>
</td>
<td class="nump">$ 16,480<span></span>
</td>
<td class="nump">$ 13,667<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember', window );">Cost of revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">1,407<span></span>
</td>
<td class="nump">1,128<span></span>
</td>
<td class="nump">940<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember', window );">Sales and marketing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">6,440<span></span>
</td>
<td class="nump">5,197<span></span>
</td>
<td class="nump">2,468<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and development</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">2,744<span></span>
</td>
<td class="nump">2,138<span></span>
</td>
<td class="nump">1,788<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and administrative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">$ 9,371<span></span>
</td>
<td class="nump">$ 8,017<span></span>
</td>
<td class="nump">$ 8,471<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<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 (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R82.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617292720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility (%)</a></td>
<td class="nump">30.00%<span></span>
</td>
<td class="nump">30.80%<span></span>
</td>
<td class="nump">29.20%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate (%)</a></td>
<td class="nump">3.60%<span></span>
</td>
<td class="nump">3.20%<span></span>
</td>
<td class="nump">2.40%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected option life (years)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<FILENAME>R83.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617010416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Option Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Stock Options Outstanding (in shares), Beginning</a></td>
<td class="nump">1,568,551<span></span>
</td>
<td class="nump">1,593,433<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted-Average Exercise Price (in dollars per share), Beginning</a></td>
<td class="nump">$ 52.31<span></span>
</td>
<td class="nump">$ 45.54<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Weighted-Average Remaining Contractual Life (years)</a></td>
<td class="text">3 years 9 months 18 days<span></span>
</td>
<td class="text">3 years 10 months 24 days<span></span>
</td>
<td class="text">4 years 1 month 6 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 91.6<span></span>
</td>
<td class="nump">$ 54.8<span></span>
</td>
<td class="nump">$ 45.7<span></span>
</td>
</tr>
<tr class="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, shares (in shares)</a></td>
<td class="nump">280,658<span></span>
</td>
<td class="nump">278,845<span></span>
</td>
<td class="nump">356,014<span></span>
</td>
</tr>
<tr class="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 );">Granted, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 88.82<span></span>
</td>
<td class="nump">$ 79.80<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares (in shares)</a></td>
<td class="num">(332,109)<span></span>
</td>
<td class="num">(285,808)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 37.25<span></span>
</td>
<td class="nump">$ 33.06<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Forfeited, shares (in shares)</a></td>
<td class="num">(15,199)<span></span>
</td>
<td class="num">(17,919)<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Forfeited, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 77.06<span></span>
</td>
<td class="nump">$ 62.30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 Stock Options Outstanding (in shares), Ending</a></td>
<td class="nump">1,501,901<span></span>
</td>
<td class="nump">1,568,551<span></span>
</td>
<td class="nump">1,593,433<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted-Average Exercise Price (in dollars per share), Ending</a></td>
<td class="nump">$ 61.06<span></span>
</td>
<td class="nump">$ 52.31<span></span>
</td>
<td class="nump">$ 45.54<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,501,901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 61.06<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">3 years 9 months 18 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 91.6<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, shares (in shares)</a></td>
<td class="nump">1,091,499<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 54.70<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual life (Year)</a></td>
<td class="text">3 years 3 months 18 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">$ 73.5<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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://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 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://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 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(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_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>R84.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617501440">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Nonvested Share (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</a></td>
<td class="nump">280,658<span></span>
</td>
<td class="nump">278,845<span></span>
</td>
<td class="nump">356,014<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 29.53<span></span>
</td>
<td class="nump">$ 26.19<span></span>
</td>
<td class="nump">$ 18.47<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember', window );">Shareholder-approved stock options plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Stock Options Outstanding (in shares), Beginning</a></td>
<td class="nump">446,553<span></span>
</td>
<td class="nump">488,821<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Beginning</a></td>
<td class="nump">$ 20.67<span></span>
</td>
<td class="nump">$ 16.11<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</a></td>
<td class="nump">280,658<span></span>
</td>
<td class="nump">278,845<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 29.53<span></span>
</td>
<td class="nump">$ 26.19<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares', window );">Vested (in shares)</a></td>
<td class="num">(301,921)<span></span>
</td>
<td class="num">(303,628)<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue', window );">Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 21.88<span></span>
</td>
<td class="nump">$ 17.74<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares', window );">Forfeited (in shares)</a></td>
<td class="num">(14,888)<span></span>
</td>
<td class="num">(17,485)<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue', window );">Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 25.16<span></span>
</td>
<td class="nump">$ 18.29<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Stock Options Outstanding (in shares), Ending</a></td>
<td class="nump">410,402<span></span>
</td>
<td class="nump">446,553<span></span>
</td>
<td class="nump">488,821<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Ending</a></td>
<td class="nump">$ 25.21<span></span>
</td>
<td class="nump">$ 20.67<span></span>
</td>
<td class="nump">$ 16.11<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<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 (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options forfeited.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options forfeited.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 vested.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of options vested.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_ShareholderApprovedStockOptionsPlanMember</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>100
<FILENAME>R85.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671621499616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,501,901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 61.06<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">3 years 9 months 18 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 91.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares), Beginning</a></td>
<td class="nump">988,543<span></span>
</td>
<td class="nump">915,233<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Granted Date Fair Value (in dollars per share), Beginning</a></td>
<td class="nump">$ 53.81<span></span>
</td>
<td class="nump">$ 38.41<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual (years)</a></td>
<td class="text">4 years 7 months 6 days<span></span>
</td>
<td class="text">4 years 6 months<span></span>
</td>
<td class="text">4 years 6 months<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 123.1<span></span>
</td>
<td class="nump">$ 86.3<span></span>
</td>
<td class="nump">$ 67.9<span></span>
</td>
</tr>
<tr class="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 );">PSUs Granted (in shares)</a></td>
<td class="nump">92,873<span></span>
</td>
<td class="nump">95,134<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">PSUs Granted, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 109.77<span></span>
</td>
<td class="nump">$ 105.96<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Performance units issued (in shares)</a></td>
<td class="nump">40,477<span></span>
</td>
<td class="nump">68,005<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue', window );">Performance units issued, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 80.11<span></span>
</td>
<td class="nump">$ 53.80<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Exercised (in shares)</a></td>
<td class="num">(109,820)<span></span>
</td>
<td class="num">(87,354)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Exercised, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 19.88<span></span>
</td>
<td class="nump">$ 14.29<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited (in shares)</a></td>
<td class="num">(3,428)<span></span>
</td>
<td class="num">(2,475)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 80.66<span></span>
</td>
<td class="nump">$ 81.82<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares), Ending</a></td>
<td class="nump">1,008,645<span></span>
</td>
<td class="nump">988,543<span></span>
</td>
<td class="nump">915,233<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Granted Date Fair Value (in dollars per share), Ending</a></td>
<td class="nump">$ 62.92<span></span>
</td>
<td class="nump">$ 53.81<span></span>
</td>
<td class="nump">$ 38.41<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,008,645<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 62.92<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">4 years 7 months 6 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 123.1<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="nump">726,075<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue', window );">Exercisable, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 47.45<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm', window );">Exercisable, weighted-average remaining contractual (years)</a></td>
<td class="text">3 years 2 months 12 days<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">$ 88.6<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 units exercisable 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 weighted average grant date fair value of units issued 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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<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 (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<FILENAME>R86.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618178224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 61.06<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">3 years 9 months 18 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 91.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Number of Units Outstanding (in shares), Beginning</a></td>
<td class="nump">482,094<span></span>
</td>
<td class="nump">474,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Granted Date Fair Value (in dollars per share), Beginning</a></td>
<td class="nump">$ 40.19<span></span>
</td>
<td class="nump">$ 32.44<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual (years)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">4 years 9 months 18 days<span></span>
</td>
<td class="text">4 years 8 months 12 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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 59.8<span></span>
</td>
<td class="nump">$ 42.1<span></span>
</td>
<td class="nump">$ 35.2<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">RSUs Granted (in shares)</a></td>
<td class="nump">62,597<span></span>
</td>
<td class="nump">61,774<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">RSUs Granted, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 88.66<span></span>
</td>
<td class="nump">$ 79.89<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Exercised (in shares)</a></td>
<td class="num">(54,173)<span></span>
</td>
<td class="num">(53,898)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Exercised, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 13.36<span></span>
</td>
<td class="nump">$ 8.52<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited (in shares)</a></td>
<td class="num">(829)<span></span>
</td>
<td class="num">(413)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 70.74<span></span>
</td>
<td class="nump">$ 60.66<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares), Ending</a></td>
<td class="nump">489,689<span></span>
</td>
<td class="nump">482,094<span></span>
</td>
<td class="nump">474,631<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Granted Date Fair Value (in dollars per share), Ending</a></td>
<td class="nump">$ 48.48<span></span>
</td>
<td class="nump">$ 40.19<span></span>
</td>
<td class="nump">$ 32.44<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Vested or expected to vest, RSU (in shares)</a></td>
<td class="nump">489,689<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 48.48<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">5 years<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 59.8<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="nump">427,613<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue', window );">Exercisable, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 43.14<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm', window );">Exercisable, weighted-average remaining contractual (years)</a></td>
<td class="text">4 years 4 months 24 days<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">$ 52.2<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 units exercisable 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<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 (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>102
<FILENAME>R87.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623816016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_CRSUAwardsOutstandingNumber', window );">Number of Units Outstanding, CRSU (in shares),Beginning</a></td>
<td class="nump">11,370<span></span>
</td>
<td class="nump">14,583<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_dsgx_CRSUAwardsWeightedAverageContractualLife', window );">Weighted-Average Remaining Contractual Life, CRSU (years)</a></td>
<td class="text">1 year 8 months 12 days<span></span>
</td>
<td class="text">1 year 9 months 18 days<span></span>
</td>
<td class="text">1 year 4 months 24 days<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_dsgx_CRSUAwardsGrantsInPeriod', window );">Number of Units Granted, CRSU (in shares)</a></td>
<td class="nump">8,579<span></span>
</td>
<td class="nump">7,879<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_dsgx_CRSUAwardsVestedAndSettledInCash', window );">Number of Units Vested and settled in cash, CRSU (in shares)</a></td>
<td class="num">(7,333)<span></span>
</td>
<td class="num">(11,092)<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_dsgx_CRSUAwardsForfeitedInPeriod', window );">Number of Units Forfeited, CRSU (in shares)</a></td>
<td class="num">(599)<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_dsgx_CRSUAwardsOutstandingNumber', window );">Number of Units Outstanding, CRSU (in shares), Ending</a></td>
<td class="nump">12,017<span></span>
</td>
<td class="nump">11,370<span></span>
</td>
<td class="nump">14,583<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_dsgx_CRSUAwardNonvestedNumber', window );">Non-vested, CRSU (in shares)</a></td>
<td class="nump">12,017<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_dsgx_CRSUAwardNonvestedWeightedAverageContractualLife', window );">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (years)</a></td>
<td class="text">1 year 8 months 12 days<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_dsgx_CRSUAwardNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nonvested CRSU awards.</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;">dsgx_CRSUAwardNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardNonvestedWeightedAverageContractualLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining contractual life of nonvested CRSU awards.</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;">dsgx_CRSUAwardNonvestedWeightedAverageContractualLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Related to CRSU awards forfeited in 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;">dsgx_CRSUAwardsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 CRSU grants in 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;">dsgx_CRSUAwardsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 CRSU awards outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_CRSUAwardsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsVestedAndSettledInCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 CRSU awards vested and settled in cash.</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;">dsgx_CRSUAwardsVestedAndSettledInCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsWeightedAverageContractualLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining contractual life of CRSU awards.</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;">dsgx_CRSUAwardsWeightedAverageContractualLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>103
<FILENAME>R88.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617366768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">$ 191,633<span></span>
</td>
<td class="nump">$ 151,152<span></span>
</td>
<td class="nump">$ 133,728<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_CA', window );">Canada</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 before income taxes</a></td>
<td class="nump">60,119<span></span>
</td>
<td class="nump">53,246<span></span>
</td>
<td class="nump">49,158<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_US', window );">United States</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">92,637<span></span>
</td>
<td class="nump">62,346<span></span>
</td>
<td class="nump">51,268<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember', window );">Other countries</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 before income taxes</a></td>
<td class="nump">$ 38,877<span></span>
</td>
<td class="nump">$ 35,560<span></span>
</td>
<td class="nump">$ 33,302<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_IncomeTaxDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>N/A</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;">dsgx_IncomeTaxDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_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/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/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/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 5: 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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/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/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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/2147483589/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_IncomeTaxAuthorityAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=country_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember</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>104
<FILENAME>R89.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623135984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">$ 53,402<span></span>
</td>
<td class="nump">$ 41,223<span></span>
</td>
<td class="nump">$ 28,248<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense (recovery)</a></td>
<td class="num">(5,042)<span></span>
</td>
<td class="num">(5,978)<span></span>
</td>
<td class="nump">3,244<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">48,360<span></span>
</td>
<td class="nump">35,245<span></span>
</td>
<td class="nump">31,492<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_CA', window );">Canada</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">22,282<span></span>
</td>
<td class="nump">16,376<span></span>
</td>
<td class="nump">9,673<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense (recovery)</a></td>
<td class="num">(3,875)<span></span>
</td>
<td class="num">(2,369)<span></span>
</td>
<td class="nump">5,059<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_US', window );">United States</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">18,020<span></span>
</td>
<td class="nump">16,532<span></span>
</td>
<td class="nump">13,085<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense (recovery)</a></td>
<td class="nump">585<span></span>
</td>
<td class="num">(5,060)<span></span>
</td>
<td class="num">(1,888)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember', window );">Other countries</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">13,100<span></span>
</td>
<td class="nump">8,315<span></span>
</td>
<td class="nump">5,490<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense (recovery)</a></td>
<td class="num">$ (1,752)<span></span>
</td>
<td class="nump">$ 1,451<span></span>
</td>
<td class="nump">$ 73<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_IncomeTaxDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>N/A</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;">dsgx_IncomeTaxDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 4: 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 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 (h)<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/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/2147483586/944-220-S99-1<br><br>Reference 7: 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 8: 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_IncomeTaxAuthorityAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=country_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember</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>105
<FILENAME>R90.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671616898256">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities', window );">Accrued liabilities not currently deductible</a></td>
<td class="nump">$ 10,326<span></span>
</td>
<td class="nump">$ 11,736<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_dsgx_DeferredTaxAssetsAccumulatedLosses', window );">Accumulated losses</a></td>
<td class="nump">2,813<span></span>
</td>
<td class="nump">2,397<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment', window );">Difference between tax and accounting basis of property and equipment</a></td>
<td class="nump">9,653<span></span>
</td>
<td class="nump">9,088<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">Research and development expenditures and tax credits</a></td>
<td class="nump">9,683<span></span>
</td>
<td class="nump">7,680<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Total deferred income tax assets</a></td>
<td class="nump">32,475<span></span>
</td>
<td class="nump">30,901<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Difference between tax and accounting basis of intangible assets</a></td>
<td class="num">(53,346)<span></span>
</td>
<td class="num">(42,423)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Temporary difference on equity derivative and related party debt</a></td>
<td class="num">(6,990)<span></span>
</td>
<td class="num">(5,513)<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_DeferredIncomeTaxLiabilities', window );">Total deferred income tax liabilities</a></td>
<td class="num">(60,336)<span></span>
</td>
<td class="num">(47,936)<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_dsgx_DeferredTaxAssetsNetBeforeValuationAllowance', window );">Net deferred income taxes</a></td>
<td class="num">(27,861)<span></span>
</td>
<td class="num">(17,035)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(2,464)<span></span>
</td>
<td class="num">(1,969)<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_dsgx_DeferredTaxAssetsLiabilitiesNet1', window );">Net deferred income taxes, net of valuation allowance</a></td>
<td class="num">$ (30,325)<span></span>
</td>
<td class="num">$ (19,004)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_DeferredTaxAssetsAccumulatedLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 accumulated losses.</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;">dsgx_DeferredTaxAssetsAccumulatedLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_DeferredTaxAssetsLiabilitiesNet1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_DeferredTaxAssetsLiabilitiesNet1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_DeferredTaxAssetsNetBeforeValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 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;">dsgx_DeferredTaxAssetsNetBeforeValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript: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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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(26)(a))<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(26)(b))<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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/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_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-8<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_DeferredTaxAssetsTaxCreditCarryforwardsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 accrued liabilities.</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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.</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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>106
<FILENAME>R91.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618376272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">$ 191,633<span></span>
</td>
<td class="nump">$ 151,152<span></span>
</td>
<td class="nump">$ 133,728<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Combined basic Canadian statutory rates</a></td>
<td class="nump">26.50%<span></span>
</td>
<td class="nump">26.50%<span></span>
</td>
<td class="nump">26.50%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Income tax expense based on the above rates</a></td>
<td class="nump">$ 50,783<span></span>
</td>
<td class="nump">$ 40,055<span></span>
</td>
<td class="nump">$ 35,438<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization', window );">Permanent differences</a></td>
<td class="nump">1,490<span></span>
</td>
<td class="nump">124<span></span>
</td>
<td class="nump">590<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Effect of differences between Canadian and foreign tax rates</a></td>
<td class="num">(2,042)<span></span>
</td>
<td class="num">(1,293)<span></span>
</td>
<td class="num">(1,859)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate', window );">Effect of rate changes on current year timing differences</a></td>
<td class="num">(424)<span></span>
</td>
<td class="num">(48)<span></span>
</td>
<td class="num">(219)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Change in estimates relating to prior periods</a></td>
<td class="nump">66<span></span>
</td>
<td class="num">(2,888)<span></span>
</td>
<td class="num">(972)<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_dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions', window );">Increase (decrease) in accruals for uncertain tax positions</a></td>
<td class="num">(544)<span></span>
</td>
<td class="num">(117)<span></span>
</td>
<td class="num">(1,181)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="nump">564<span></span>
</td>
<td class="nump">263<span></span>
</td>
<td class="num">(155)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">Research tax credits</a></td>
<td class="num">(2,230)<span></span>
</td>
<td class="num">(1,488)<span></span>
</td>
<td class="num">(734)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationOtherAdjustments', window );">Other, including foreign exchange</a></td>
<td class="nump">697<span></span>
</td>
<td class="nump">637<span></span>
</td>
<td class="nump">584<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">$ 48,360<span></span>
</td>
<td class="nump">$ 35,245<span></span>
</td>
<td class="nump">$ 31,492<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .</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;">dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/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/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/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 5: 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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/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/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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/2147483589/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_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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 4: 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 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 (h)<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/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/2147483586/944-220-S99-1<br><br>Reference 7: 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 8: 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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in the income tax rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationNondeductibleExpenseAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationPriorYearIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>107
<FILENAME>R92.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618240544">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jan. 31, 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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">$ 11,615<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_TaxPeriodAxis=dsgx_TaxYear2026Member', window );">2026</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">59<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_TaxPeriodAxis=dsgx_TaxYear2027Member', window );">2027</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">191<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_TaxPeriodAxis=dsgx_TaxYear2028Member', window );">2028</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">188<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_TaxPeriodAxis=dsgx_TaxYear2029Member', window );">2029</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">146<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_TaxPeriodAxis=dsgx_TaxYear2030Member', window );">2030</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">375<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_TaxPeriodAxis=dsgx_AfterTaxYear2026Member', window );">Thereafter</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">798<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_TaxPeriodAxis=dsgx_IndefiniteYearMember', window );">Indefinite</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">9,858<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=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic tax authority</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">1,256<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=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic tax authority | 2028</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">138<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=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic tax authority | 2029</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">138<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=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic tax authority | 2030</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">138<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=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic tax authority | Thereafter</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">310<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=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic tax authority | Indefinite</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">532<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=dsgx_EmeaIncomeTaxAuthorityMember', window );">EMEA | Foreign tax authority</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">9,326<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=dsgx_EmeaIncomeTaxAuthorityMember', window );">EMEA | Foreign tax authority | Indefinite</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">9,326<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=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">1,033<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=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority | 2026</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">59<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=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority | 2027</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">191<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=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority | 2028</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">50<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=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority | 2029</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority | 2030</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">237<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=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific | Foreign tax authority | Thereafter</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_dsgx_IncomeTaxDisclosureLineItems', 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_OperatingLossCarryforwards', window );">Income tax loss carryforwards</a></td>
<td class="nump">$ 488<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_IncomeTaxDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>N/A</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;">dsgx_IncomeTaxDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-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_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_TaxPeriodAxis=dsgx_TaxYear2026Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_TaxYear2026Member</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_TaxPeriodAxis=dsgx_TaxYear2027Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_TaxYear2027Member</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_TaxPeriodAxis=dsgx_TaxYear2028Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_TaxYear2028Member</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_TaxPeriodAxis=dsgx_TaxYear2029Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_TaxYear2029Member</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_TaxPeriodAxis=dsgx_TaxYear2030Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_TaxYear2030Member</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_TaxPeriodAxis=dsgx_AfterTaxYear2026Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_AfterTaxYear2026Member</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_TaxPeriodAxis=dsgx_IndefiniteYearMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxPeriodAxis=dsgx_IndefiniteYearMember</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=us-gaap_InternalRevenueServiceIRSMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=us-gaap_InternalRevenueServiceIRSMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_EmeaIncomeTaxAuthorityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember</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=dsgx_AsiaPacificIncomeTaxAuthorityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_AsiaPacificIncomeTaxAuthorityMember</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>108
<FILENAME>R93.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618214288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability, beginning of year</a></td>
<td class="nump">$ 6,153<span></span>
</td>
<td class="nump">$ 6,120<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Gross increases - current period</a></td>
<td class="nump">1,476<span></span>
</td>
<td class="nump">3,946<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Lapsing due to statutes of limitations</a></td>
<td class="num">(2,098)<span></span>
</td>
<td class="num">(3,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_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability, end of year</a></td>
<td class="nump">$ 5,531<span></span>
</td>
<td class="nump">$ 6,153<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_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>109
<FILENAME>R94.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671623570096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Taxes</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dsgx_IncomeBeforeTaxesPercent', window );">Percentage of income before income taxes</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="nump">23.00%<span></span>
</td>
<td class="nump">24.00%<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_dsgx_CurrentIncomeTaxRateContinuingOperations', window );">Percentage of current income tax expense</a></td>
<td class="nump">28.00%<span></span>
</td>
<td class="nump">27.00%<span></span>
</td>
<td class="nump">21.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_UndistributedEarningsOfForeignSubsidiaries', window );">Undistributed Earnings of Foreign Subsidiaries</a></td>
<td class="nump">$ 1,305,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_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate', window );">Unrecognized tax benefits that would impact effective tax rate</a></td>
<td class="nump">5,500<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_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit', window );">Significant change in unrecognized tax benefits is reasonably possible, amount of unrecorded benefit</a></td>
<td class="nump">$ 100<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_dsgx_CurrentIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_CurrentIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_IncomeBeforeTaxesPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Income tax expense expressed as a percentage of income before taxes.</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;">dsgx_IncomeBeforeTaxesPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_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_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of the unrecognized tax benefit of a position taken for which it is reasonably possible that the total amount thereof will significantly increase or decrease within twelve months 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UndistributedEarningsOfForeignSubsidiaries">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 undistributed earnings of foreign subsidiaries intended to be permanently reinvested outside the country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 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/2147482603/740-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482620/740-10-25-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 740<br> -Topic 942<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481141/942-740-50-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> -Subparagraph (b)<br> -SubTopic 740<br> -Topic 944<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480135/944-740-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_UndistributedEarningsOfForeignSubsidiaries</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of unrecognized tax benefits that, if recognized, would affect the effective tax 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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>110
<FILENAME>R95.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617491200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Beginning balance</a></td>
<td class="nump">$ 85,977<span></span>
</td>
<td class="nump">$ 69,399<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Recognition of previously deferred revenue</a></td>
<td class="num">(68,389)<span></span>
</td>
<td class="nump">56,102<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_dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue', window );">Deferral of revenue</a></td>
<td class="nump">86,328<span></span>
</td>
<td class="nump">72,483<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Increases from business combinations, net</a></td>
<td class="nump">2,195<span></span>
</td>
<td class="nump">115<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_dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(903)<span></span>
</td>
<td class="nump">82<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Ending balance</a></td>
<td class="nump">105,208<span></span>
</td>
<td class="nump">85,977<span></span>
</td>
</tr>
<tr class="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 );">Current</a></td>
<td class="nump">104,230<span></span>
</td>
<td class="nump">84,513<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Long-term</a></td>
<td class="nump">978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Beginning balance</a></td>
<td class="nump">3,029<span></span>
</td>
<td class="nump">3,222<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetReclassifiedToReceivable', window );">Transfers to trade receivables from contract assets</a></td>
<td class="num">(1,585)<span></span>
</td>
<td class="num">(1,291)<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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue', window );">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</a></td>
<td class="nump">6,008<span></span>
</td>
<td class="nump">1,104<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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(31)<span></span>
</td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Ending balance</a></td>
<td class="nump">$ 7,421<span></span>
</td>
<td class="nump">$ 3,029<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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) to the contract asset during the period attributable to the effect of movements in foreign 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;">dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 contract asset recognized as revenue during the period, net of amounts transferred to trade receivables.</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;">dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign 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;">dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.</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;">dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ContractWithCustomerAssetReclassifiedToReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>111
<FILENAME>R96.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671621574368">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jan. 31, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligation, amount</a></td>
<td class="nump">$ 528.3<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Remaining performance obligation, percentage</a></td>
<td class="nump">80.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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-31', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-31</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Remaining performance obligation, period (month)</a></td>
<td class="text">24 months<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-31">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-31</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>112
<FILENAME>R97.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671620249520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostNet', window );">Capitalized contract cost, net, total</a></td>
<td class="nump">$ 19.0<span></span>
</td>
<td class="nump">$ 18.6<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_CapitalizedContractCostAmortization', window );">Capitalized contract cost, amortization</a></td>
<td class="nump">$ 6.9<span></span>
</td>
<td class="nump">$ 6.6<span></span>
</td>
<td class="nump">$ 5.8<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_CapitalizedContractCostAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 for asset recognized from cost incurred to obtain or fulfill contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479483/340-40-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_CapitalizedContractCostAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_CapitalizedContractCostNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479483/340-40-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_CapitalizedContractCostNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>113
<FILENAME>R98.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671625434672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges - Components of Other Charges (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherIncomeAndExpensesAbstract', window );"><strong>Other Charges</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="nump">$ 5,803<span></span>
</td>
<td class="nump">$ 3,697<span></span>
</td>
<td class="nump">$ 2,560<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Contingent consideration accretion and adjustments</a></td>
<td class="nump">707<span></span>
</td>
<td class="nump">16,334<span></span>
</td>
<td class="nump">2,804<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring plans</a></td>
<td class="nump">956<span></span>
</td>
<td class="nump">1,618<span></span>
</td>
<td class="nump">77<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_OtherCostAndExpenseOperating', window );">Other charges, total</a></td>
<td class="nump">$ 7,466<span></span>
</td>
<td class="nump">$ 21,649<span></span>
</td>
<td class="nump">$ 5,441<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_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity 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 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479405/805-10-25-23<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherCostAndExpenseOperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(7)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<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.3)<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_OtherCostAndExpenseOperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OtherIncomeAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherIncomeAndExpensesAbstract</td>
</tr>
<tr>
<td style="padding-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_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>114
<FILENAME>R99.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671618186640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges - Restructuring Provision (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2025 </div>
<div>USD ($)</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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember', window );">Fiscal 2024 Restructuring Plan</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_RestructuringReserve', window );">Balance</a></td>
<td class="nump">$ 442<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">178<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(615)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Non-cash draw downs and foreign exchange</a></td>
<td class="num">(5)<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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember', window );">Fiscal 2025 Restructuring Plan</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_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">778<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(616)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="nump">162<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember', window );">Workforce Reduction | Fiscal 2024 Restructuring Plan</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_RestructuringReserve', window );">Balance</a></td>
<td class="nump">442<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">66<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(503)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Non-cash draw downs and foreign exchange</a></td>
<td class="num">(5)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember', window );">Workforce Reduction | Fiscal 2025 Restructuring Plan</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_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">778<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(616)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="nump">162<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_FacilityClosingMember', window );">Office Closures | Fiscal 2024 Restructuring Plan</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_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">112<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">$ (112)<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_PaymentsForRestructuring">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: 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_PaymentsForRestructuring</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized 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 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.P.4(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-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_RestructuringReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringReserveAccrualAdjustment1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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) which increases (decreases) the restructuring reserve from an adjustment to a previously accrued restructuring 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 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-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_RestructuringReserveAccrualAdjustment1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringReserveTranslationAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 foreign currency translation gain (loss) which decreases (increases) the restructuring reserve.</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 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveTranslationAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember</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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_FacilityClosingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveAxis=us-gaap_FacilityClosingMember</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>115
<FILENAME>R100.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671617362064">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Other Charges - Additional information (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jan. 31, 2025 </div>
<div>USD ($)</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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember', window );">Fiscal 2024 Restructuring Plan</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_RestructuringAndRelatedCostCostIncurredToDate1', window );">Restructuring cost incurred to date</a></td>
<td class="nump">$ 1.8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember', window );">Fiscal 2025 Restructuring Plan</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_RestructuringAndRelatedCostCostIncurredToDate1', window );">Restructuring cost incurred to date</a></td>
<td class="nump">0.8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember', window );">Fiscal 2025 Restructuring Plan | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1', window );">Restructuring and related cost, expected cost remaining</a></td>
<td class="nump">0.1<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember', window );">Fiscal 2025 Restructuring Plan | Maximum</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_RestructuringAndRelatedCostExpectedCostRemaining1', window );">Restructuring and related cost, expected cost remaining</a></td>
<td class="nump">$ 0.2<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_RestructuringAndRelatedCostCostIncurredToDate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 costs incurred to date for the specified restructuring 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 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostCostIncurredToDate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringAndRelatedCostExpectedCostRemaining1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 expected cost remaining for the specified restructuring cost.</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_RestructuringAndRelatedCostExpectedCostRemaining1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=dsgx_Fiscal2024RestructuringPlanMember</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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=dsgx_Fiscal2025RestructuringPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>116
<FILENAME>R101.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671719013808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowElementsAbstract', window );"><strong>Supplemental Cash Flow Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Trade accounts receivable</a></td>
<td class="nump">$ 3,299<span></span>
</td>
<td class="num">$ (6,566)<span></span>
</td>
<td class="nump">$ 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_IncreaseDecreaseInOtherReceivables', window );">Other accounts receivable</a></td>
<td class="num">(1,802)<span></span>
</td>
<td class="num">(683)<span></span>
</td>
<td class="nump">2,589<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="num">(14,712)<span></span>
</td>
<td class="num">(8,039)<span></span>
</td>
<td class="num">(5,560)<span></span>
</td>
</tr>
<tr class="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="nump">1,868<span></span>
</td>
<td class="nump">6,180<span></span>
</td>
<td class="num">(620)<span></span>
</td>
</tr>
<tr class="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 liabilities</a></td>
<td class="num">(9,017)<span></span>
</td>
<td class="nump">9,270<span></span>
</td>
<td class="nump">2,433<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInIncomeTaxes', window );">Income taxes payable</a></td>
<td class="nump">956<span></span>
</td>
<td class="num">(446)<span></span>
</td>
<td class="nump">753<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_dsgx_IncreaseDecreaseInOperatingLeaseLiabilities', window );">Operating leases</a></td>
<td class="num">(349)<span></span>
</td>
<td class="nump">325<span></span>
</td>
<td class="num">(95)<span></span>
</td>
</tr>
<tr class="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">5,825<span></span>
</td>
<td class="nump">15,141<span></span>
</td>
<td class="nump">8,142<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_IncreaseDecreaseInOperatingCapital', window );">Changes in operating assets and liabilities</a></td>
<td class="num">$ (13,932)<span></span>
</td>
<td class="nump">$ 15,182<span></span>
</td>
<td class="nump">$ 7,793<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_IncreaseDecreaseInOperatingLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 increase (decrease) in operating lease liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_IncreaseDecreaseInOperatingLeaseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes, and in deferred and other tax liabilities and assets.</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_IncreaseDecreaseInIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncreaseDecreaseInOperatingCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all assets and liabilities used in 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_IncreaseDecreaseInOperatingCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in receivables classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowElementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowElementsAbstract</td>
</tr>
<tr>
<td style="padding-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>117
<FILENAME>R102.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671615953984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Breakdown of Measures of Profit (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract', window );"><strong>Less:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">$ 5,589<span></span>
</td>
<td class="nump">$ 5,474<span></span>
</td>
<td class="nump">$ 5,225<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">69,399<span></span>
</td>
<td class="nump">60,501<span></span>
</td>
<td class="nump">60,177<span></span>
</td>
</tr>
<tr class="ro">
<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 from operations</a></td>
<td class="nump">181,124<span></span>
</td>
<td class="nump">142,849<span></span>
</td>
<td class="nump">130,434<span></span>
</td>
</tr>
<tr class="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">(1,004)<span></span>
</td>
<td class="num">(1,363)<span></span>
</td>
<td class="num">(1,167)<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_dsgx_InvestmentAndOtherIncome', window );">Investment and other income</a></td>
<td class="nump">11,513<span></span>
</td>
<td class="nump">9,666<span></span>
</td>
<td class="nump">4,461<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 BEFORE INCOME TAXES</a></td>
<td class="nump">191,633<span></span>
</td>
<td class="nump">151,152<span></span>
</td>
<td class="nump">133,728<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">48,360<span></span>
</td>
<td class="nump">35,245<span></span>
</td>
<td class="nump">31,492<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</a></td>
<td class="nump">143,273<span></span>
</td>
<td class="nump">115,907<span></span>
</td>
<td class="nump">102,236<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_dsgx_ShareBasedCompensationExpenseAndRelatedTaxes', window );">Stock-based compensation and related taxes</a></td>
<td class="nump">21,098<span></span>
</td>
<td class="nump">17,005<span></span>
</td>
<td class="nump">13,920<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCostAndExpenseOperating', window );">Other charges (Note 20)</a></td>
<td class="nump">7,466<span></span>
</td>
<td class="nump">21,649<span></span>
</td>
<td class="nump">5,441<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_dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization', window );">Adjusted EBITDA</a></td>
<td class="nump">284,676<span></span>
</td>
<td class="nump">247,478<span></span>
</td>
<td class="nump">215,197<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=dsgx_SingleReportableSegmentMember', window );">Single reportable segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">651,000<span></span>
</td>
<td class="nump">572,931<span></span>
</td>
<td class="nump">486,014<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract', window );"><strong>Less:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LaborAndRelatedExpense', window );">Headcount-related costs, including stock compensation expense</a></td>
<td class="nump">249,887<span></span>
</td>
<td class="nump">226,897<span></span>
</td>
<td class="nump">195,261<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_dsgx_CostOfRevenuesAndNetworkCharges', window );">Cost of revenues and network charges (exclusive of other items presented separately)</a></td>
<td class="nump">67,212<span></span>
</td>
<td class="nump">53,797<span></span>
</td>
<td class="nump">33,996<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostMaintenance', window );">SaaS software and maintenance</a></td>
<td class="nump">23,066<span></span>
</td>
<td class="nump">19,908<span></span>
</td>
<td class="nump">16,476<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_dsgx_SegmentReportingOtherSegmentItemAmount', window );">Other segment items</a></td>
<td class="nump">54,723<span></span>
</td>
<td class="nump">63,505<span></span>
</td>
<td class="nump">44,445<span></span>
</td>
</tr>
<tr class="re">
<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">5,589<span></span>
</td>
<td class="nump">5,474<span></span>
</td>
<td class="nump">5,225<span></span>
</td>
</tr>
<tr class="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 of intangible assets</a></td>
<td class="nump">69,399<span></span>
</td>
<td class="nump">60,501<span></span>
</td>
<td class="nump">60,177<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_CostsAndExpenses', window );">Total expenses</a></td>
<td class="nump">469,876<span></span>
</td>
<td class="nump">430,082<span></span>
</td>
<td class="nump">355,580<span></span>
</td>
</tr>
<tr class="ro">
<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 from operations</a></td>
<td class="nump">181,124<span></span>
</td>
<td class="nump">142,849<span></span>
</td>
<td class="nump">130,434<span></span>
</td>
</tr>
<tr class="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">(1,004)<span></span>
</td>
<td class="num">(1,363)<span></span>
</td>
<td class="num">(1,167)<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_dsgx_InvestmentAndOtherIncome', window );">Investment and other income</a></td>
<td class="nump">11,513<span></span>
</td>
<td class="nump">9,666<span></span>
</td>
<td class="nump">4,461<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 BEFORE INCOME TAXES</a></td>
<td class="nump">191,633<span></span>
</td>
<td class="nump">151,152<span></span>
</td>
<td class="nump">133,728<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">48,360<span></span>
</td>
<td class="nump">35,245<span></span>
</td>
<td class="nump">31,492<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</a></td>
<td class="nump">$ 143,273<span></span>
</td>
<td class="nump">$ 115,907<span></span>
</td>
<td class="nump">$ 102,236<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 adjusted portion of profit or loss for the period, before interests, income taxes, depreciation and amortization which is attributable to the entity for the reporting 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;">dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_CostOfRevenuesAndNetworkCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 including network charges  during the reporting 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;">dsgx_CostOfRevenuesAndNetworkCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_InvestmentAndOtherIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 investment income and other income.</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;">dsgx_InvestmentAndOtherIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_SegmentReportingOtherSegmentItemAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dsgx_SegmentReportingOtherSegmentItemAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_dsgx_ShareBasedCompensationExpenseAndRelatedTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement including the taxes related to such expenses during the reporting period. Excludes amount capitalized.</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;">dsgx_ShareBasedCompensationExpenseAndRelatedTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482686/350-30-45-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CostMaintenance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cost of maintenance incurred and directly related to good produced and service rendered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(b)(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_CostMaintenance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_CostsAndExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 costs of sales and operating expenses for the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostsAndExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/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/2147483586/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/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 5: 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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/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/2147479557/942-235-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -SubTopic 20<br> -Topic 940<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481913/940-20-25-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 10: 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/2147483589/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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 4: 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 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 (h)<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/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/2147483586/944-220-S99-1<br><br>Reference 7: 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 8: 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 the cost of borrowed funds 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/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/2147480167/946-830-55-10<br><br>Reference 2: 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/2147483581/946-220-45-3<br><br>Reference 3: 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(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-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 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-3<br><br>Reference 6: 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.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 7: 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 (210.5-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_LaborAndRelatedExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit.</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(b)(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_LaborAndRelatedExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: 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 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 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 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 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 11: 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 12: 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 13: 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/2147480167/946-830-55-10<br><br>Reference 14: 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/2147483581/946-220-45-7<br><br>Reference 15: 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/2147483586/944-220-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 17: 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/2147483575/946-220-S99-1<br><br>Reference 18: 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/2147483575/946-220-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: 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 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)(iii)(A))<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)(iv))<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)(5))<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 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 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)(A))<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)(B))<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)(iv))<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)(5))<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 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 30: 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 31: 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 32: 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 33: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 34: 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 35: 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 36: 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 37: 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 38: 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 39: 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/2147483589/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_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/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 2: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<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 (f)<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/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 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherCostAndExpenseOperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(7)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<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.3)<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_OtherCostAndExpenseOperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 (b)<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 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 8: 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 9: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-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_SegmentReportingInformationOperatingIncomeLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract</td>
</tr>
<tr>
<td style="padding-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_StatementBusinessSegmentsAxis=dsgx_SingleReportableSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_SingleReportableSegmentMember</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>118
<FILENAME>R103.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671622448672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Segmented Revenue by Geographical Location of Customer (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">$ 651,000<span></span>
</td>
<td class="nump">$ 572,931<span></span>
</td>
<td class="nump">$ 486,014<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">439,103<span></span>
</td>
<td class="nump">382,176<span></span>
</td>
<td class="nump">307,102<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">Europe, Middle-East and Africa</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">153,004<span></span>
</td>
<td class="nump">137,164<span></span>
</td>
<td class="nump">126,942<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CA', window );">Canada</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">39,254<span></span>
</td>
<td class="nump">35,422<span></span>
</td>
<td class="nump">34,547<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">Asia Pacific</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">$ 19,639<span></span>
</td>
<td class="nump">$ 18,169<span></span>
</td>
<td class="nump">$ 17,423<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 (b)<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 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 8: 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 9: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-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_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=us-gaap_EMEAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AsiaPacificMember</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>119
<FILENAME>R104.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671726025024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Segmented Revenue by Revenue Type (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th"><div>Jan. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">$ 651,000<span></span>
</td>
<td class="nump">$ 572,931<span></span>
</td>
<td class="nump">$ 486,014<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ServiceMember', window );">Service</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">590,243<span></span>
</td>
<td class="nump">520,930<span></span>
</td>
<td class="nump">435,734<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=dsgx_ProfessionalServicesAndOtherMember', window );">Professional services and other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">55,042<span></span>
</td>
<td class="nump">46,675<span></span>
</td>
<td class="nump">41,895<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_LicenseMember', window );">License</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segmented Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">$ 5,715<span></span>
</td>
<td class="nump">$ 5,326<span></span>
</td>
<td class="nump">$ 8,385<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479941/924-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 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 (b)<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 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 8: 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 9: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-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_srt_ProductOrServiceAxis=us-gaap_ServiceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ServiceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=dsgx_ProfessionalServicesAndOtherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=dsgx_ProfessionalServicesAndOtherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_LicenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_LicenseMember</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>120
<FILENAME>R105.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671621845664">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Segmented Information - Long-lived Assets by Geographical Location (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2025</div></th>
<th class="th"><div>Jan. 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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Segmented 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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">$ 333,751<span></span>
</td>
<td class="nump">$ 262,599<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Segmented Information</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">246,048<span></span>
</td>
<td class="nump">178,843<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">Europe, Middle-East and Africa</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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Segmented 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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">49,737<span></span>
</td>
<td class="nump">26,298<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CA', window );">Canada</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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Segmented Information</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">31,007<span></span>
</td>
<td class="nump">47,072<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">Asia Pacific</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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Segmented 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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">$ 6,959<span></span>
</td>
<td class="nump">$ 10,386<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_NoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.</p></div>
<a href="javascript: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 (b)<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_NoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems</td>
</tr>
<tr>
<td style="padding-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_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=us-gaap_EMEAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AsiaPacificMember</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>121
<FILENAME>R106.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.0.1</span><table class="report" border="0" cellspacing="2" id="idm46671621574528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Additional information (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2025 </div>
<div>segment</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segmented Information</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_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">1<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_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>122
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( *B295H'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    " "HDF5:]=Y7!N\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+!
M3L,P#(9?!>7>.FT9AZCK96BG(2$Q"<0M2KPMHFFBQ*C=VY.&K1."!^ 8^\_G
MSY);Y85R 9^#\QC(8+R;;#]$H?R:G8B\ (CJA%;&,B6&U#RX8"6E9SB"E^I#
M'A%JSA_ (DDM2<(,+/Q"9%VKE5 !);EPP6NUX/UGZ#-,*\ >+0X4H2HK8-T\
MT9^GOH4;8(81!AN_"Z@78J[^B<T=8)?D%,V2&L>Q')N<2SM4\/:T>\GK%F:(
M) >%Z5<T@LX>U^PZ^;79/.ZWK*MYO2IX4_#5OFY$70E^_SZ[_O"["5NGS<'\
M8^.K8-?"K[OHO@!02P,$%     @ J))E6IE<G",0!@  G"<  !,   !X;"]T
M:&5M92]T:&5M93$N>&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M
M3A^%$5B-;'EDD81_OT<V$,N6#>V23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R
M>&#9+]O6N[<OWN!7,B0103 9IZ_PP JE3%ZU6FD PSA]R1,2P]R"BPA+>!3+
MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,!
M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K
MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2
MBW <!.!1NY["G?1LOZ1!";2C:=!DV/;:KI&FJHU33]/W?=_KFVB<"HU;3]-K
M=]W3CHG&K=!X#;[Q3X?#KHG&J]!TZVDF)_VN:Z3I%FA"1N/K>A(5M>5 TR
M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$
MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7<K_WUE[O)I#-ZG7TZSFN4
M?VFK :?MNYO/D_QSZ.2?IY/734+.<+PL"?'[(UMAAR=N.Q-R.AQG0GS/]O:1
MI24RS^_Y"NM./&<?5I:P7<_/Y)Z,<B.[W?98??9/1VXCUZG LR+7E$8D19_(
M+;KD$3BU20TR$S\(G8:8:E < J0),9:AAOBTQJP1X!-]M[X(R-^-B/>K;YH]
M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M
MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZ<TT#PE"\D^DJ1CVFS(Z=T)LWH
M,QK!1J\;=8=HTCQZ_@7YG#4*')$;'0)G&[-&(81IN_ >KR2.FJW"$2M"/F(9
M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+
MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T
M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+
M.7\N?<^E[[GT/:'2MS<C?6?!TXM;WD9N6\3[KC':US0N*&-7<LW(QU2ODRG8
M.9_ [/UH/I[Q[?K9)(2OFEDM(Q:02X&S022X_(O*\"K$">AD6R4)RU3393>*
M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W<DOJMI2^M28X
M2O2QS'!.'LL,.V<\DAVV=Z =-?OV77;D(Z4P4Y=#N!I"O@-MNIW<.CB>F)&Y
M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_#
M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0
MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR
ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC
MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYN<KGHB=OJ7
M=\%@\OUPR4</Y3OG7_1=0ZY^]MWC^FZ3.TA,G'G%$0%T10(CE1P&%A<RY%#N
MDI &$P'-E,E$\ *"9*8<@)CZ"[WR#+DI%<ZM/CE_12R#ADY>TB42%(JP# 4A
M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF
M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.'<YMZN,)%K/]8UA[Y,M\Y<-LZW@->
MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_
M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]!
MU4#E/]O4#6CV#30<D05>,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04
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
M!,3O]ZG(U]5+\46H_@(X^@]02P,$%     @ J))E6D:Z.L"3 @  9@<  !@
M  !X;"]W;W)K<VAE971S+W-H965T,RYX;6RM56MOFS 4_2L6DZ9.VDJ P-J.
M("4T4SOU$37M]MF%FV 5;&:;I-NOGQ^$)15-NVI?@GU]S[GGW,!UO&;\010
M$CU6)14CIY"R/G%=D15087'(:J#J9,%XA:7:\J4K:@XX-Z"J=/W!('(K3*B3
MQ"8VXTG,&ED2"C..1%-5F/^:0,G6(\=S-H$;LBRD#KA)7.,ES$'>U3.N=F['
MDI,*J"",(@Z+D3/V3M)(YYN$[P368FN-M)-[QA[TYCP?.0,M"$K(I&; ZK&"
M%,I2$RD9/UM.IRNI@=OK#?M7XUUYN<<"4E;^(+DL1LZ1@W)8X*:4-VQ]!JV?
M4/-EK!3F%ZUM;CAT4-8(R:H6K!14A-HG?FS[L 7PHF< ?@OPGP*>JQ"T@, 8
MM<J,K5,L<1)SMD9<9RLVO3"],6CEAE#]+\XE5Z=$X6227E_-KR_.3\>WTU,T
M&5^,K](IFI]-I[=S=###'*@L0)(,E^(#^H1$H4(B=J4JK0G<K"TSL67\9\IX
M/KIDBDJ@*<TAWR5PE>9.N+\1/O'W,G[#]! %WD?D#_RP1U#Z>OAPCYR@ZV-@
M^()_[V-?MRS9L)],?[DGHL89C!SU:0K@*W"2]^^\:/"ES^E_(MOQ/>Q\#_>Q
M)RFK*O4UVO="O2!SN\"-+!@GOR%'!V1S_*&O$_OI[U2D(O+I&V-]OPFZXS+L
M7(9O<4F$:%YV:*DC0ZV'ZBHY"J-!>!P=Q^YJVT]?HG<4#,.P2]Q1'W7JH[>H
M5S-=2$QS0I<O68A>:Z$OL=>"NS6R*N!+,\D%REA#I1T"7;2[+,9F1CZ)3]0E
M8F?^7QI[ UUBOB14H!(6BG)P^%GUE]NI;C>2U68PWC.IQJQ9%NHB!*X3U/F"
M,;G9Z +=U9K\ 5!+ P04    " "HDF5:Z_&G684&   ''   &    'AL+W=O
M<FMS:&5E=',O<VAE970T+GAM;*U9:W/:.!3]*QJVLY/.M,%Z^)5-F"'82=AI
M((-IVOVH@!(\-39KBR3=7[_R(Q@D69O.\@4_./=:YTJZ]T@Z?\GR'\6*,0Y>
MUTE:7/16G&_.^OUBL6)K6IQF&Y:*?QZS?$VY>,R?^L4F9W19&:V3/K(LI[^F
M<=H;G%?O[O+!>;;E29RRNQP4V_6:YC\O69*]7/1@[^W%+'Y:\?)%?W"^H4\L
M8OSKYBX73_V=EV6\9FD19RG(V>-%;PC/ N25!A7B/F8OQ=X]**D\9-F/\F&\
MO.A998M8PA:\=$'%Y9F-6)*4GD0[_FZ<]G;?+ WW[]^\7U7D!9D'6K!1EGR+
MEWQUT?-Z8,D>Z3;AL^SEAC6$[-+?(DN*ZA>\-%BK!Q;;@F?KQEBT8!VG]96^
M-H'8,X!.AP%J#)!L0#H,<&. WVM &@-21::F4L4AH)P.SO/L!>0E6G@K;ZI@
M5M:"?IR6_1[Q7/P;"SL^&$TGT?3+.!C.PP!$<W&Y#2?S"$ROP/0NG WG8P$
MG\'7*  G'SZ"8D5S5H X!?-5MBUHNBP^@0\'S^=]+AI6NN\OFD9<UHU '8V
M"-QF*5\5($R7;'GHH"\8[6BA-UJ7R.CQ3YJ> @P_ 60A6].@T?O-B<8\>+\Y
M-K#!NT["E3_\?SI)%_;:+=&[+5/*6;&A"W;1$SFC8/DSZPU^_PTZUA^ZD!W3
M67 D9P?A)+MP$I/WP2R\#R=?0VW$:DN[LBQSYO/ L:%E6>?]Y_U8J##;13Z&
MA[! A1'/L2#9P0[:;^_:;QO;/YI&\[+OWWB $_:Z2+:%2* @>P1TG>4\_H=6
M>;4*7\K9$A1L0W/*6?(3/)3I_J..?OUA9Z_!T/9LETCT-3#L(=^6Z&M@$&/D
MZ.D[._J.D?[U;!I%X'8XNQY/=!P<Y:O$1V3OJS4'#0P3!TNP0(5A%SF>I^?@
M[CBXQAD=?K\+)Y%^"+K'G+3'=!8<R=E!Q+Q=Q#QCKT<T$75'U!=1_?(?C,?I
MDRYXGM)=+G9\)/6]BG(\Z,BS5T79CNUB?<_[.QZ^.?F(R-!\L:JH+-FSF(H;
MH:.XCHRO-,"WB>]*9%241Z"%)3(JRK6PW4$&6JU\L,R3D:4LITG%ABZ%0(D+
M+K*,2$5:&6"I@;<1\21&&IB(NRM3TL!$=*#5P6E/$D$CIRE?L1PLA-)Y$D/N
M9))Q)BJY-E\VG@["2APYU6A0"#K$E_FH,)L0V$$'M720D<YPOQZ(^A"GG*9/
M\4/" "T*QO6"#:D]Y6/?EYEI8)9MR3-)"X.NVT&MU470J!,&\^E\^ 68DFGC
MX"!_BR)DR1E!@T,^=#U79J+!$83LCI(.6TT"S:)D/!E-;T-P-9O>_H>H:QP=
ME%4/0B07:1V.($\==AH<MD0Q[*#4RA1HUBGCR3R<A4*K-!VD):-JA,]";RE<
M=##L*!E!!X-.USAK%0<T2X[QY%[P*$4W&$X",)W?A#-0]YB6E"H:(+0AEDFI
M,-^1DT>@01'B=&6%5H! 8[5^&V^7X=5T%C9<P'SXO6,:N2HC'SI8H:3!V8([
MDDEI<%@(JPY9!5N5 #VCL&J)O(TZ<#(+1]/[</;7QR:70T^?RXT"Y%>%UU&]
M!<?R=AC55K- LV@9;?.\0Z- 55C8F*CY5841B) R@548\O8%PN%N0"M3D%FF
M!.R1"0I+'0.DRHC/MD5D!EJ8[TK:)=# ,"(=N12UF@29-<DX761K!CA]!>QU
MP])"JZ^0JB"(AQUY]:J!82'#Y.6;#@;)GI@^Y-(*$F06))-P;DB>C;%]4+8P
MDM7?2(>#MF_)%5N'L\3(ZUB%HE9\(/.N3#B<3<:3ZPB(:@VBFZ%(HTU^<;3Y
M!1UU-^:HWH)C>3L,92M^D%G\7-(B7H"3. 4?P$9H[VJ741_$VI&[WYNGCKR
MT**4I;T6A3HJ*VIE#S++GB!.MN6&R[OHV#HZLOK1HC"1Z>A0L"MUMMH'.<9A
M_BT<7]^4&X]#44.'UV$]U",P_3J/YD(-B2D 3OC;YJ^>I5%=_?+(/Z:WX%C>
M#J/;RC!DEF'MR*]WUO7Q4]62)U:&2D;4P2QY<@0Z&'']KG'?2B]DWJ'9'_<F
M,NJVBN=B60F,=##'@PH9'8S8,IG^W@G)FHEU?7G25(!%MDUY?:JP>[L[S1I6
M9SC2^TMX%M1G4JV;^HCLEN9/<5J A#T*E]:I*Z9C7I\ZU0\\VU3G, \9Y]FZ
MNETQNF1Y"1#_/V:B>#0/Y0=V9W^#?P%02P,$%     @ J))E6F"_O!UP P
M  L  !@   !X;"]W;W)K<VAE971S+W-H965T-2YX;6RM5EUSVCH0_2L:E^G
M3!I;MK&=%#R3 )URYP8R@?8^*[; ;FV)2@*2?W]7MO$%Q^'F@3S$^MASI+-:
M=G>PY^*W3"A5Z"7/F!P:B5*;6].444)S(J_YAC+867&1$P53L3;E1E 2%Z \
M,VW+\LR<I,P(!\7:HP@'?*NRE-%'@>0VSXEXO:<9WP\-;!P6GM)UHO2"&0XV
M9$T75/W8/ J8F35+G.:4R90S).AJ:-SAVW&@[0N#GRG=RZ,QTDJ>.?^M)]-X
M:%CZ0C2CD=(,!#X[.J)9IHG@&G\J3J,^4@./QP?V;X5VT/),)!WQ[)\T5LG0
M" P4TQ799NJ)[[_32D]?\T4\D\5_M*]L+0-%6ZEX7H'A!GG*RB]YJ?QP!,#>
M.P"[ MA-@/L.P*D SD<!;@5P"\^44@H_C(DBX4#P/1+:&MCTH'!F@0;Y*=//
MOE "=E/ J7 TGRWF?T_'=\O)&"V6\'F8S)8+-/^&1O.'QZ?)]\EL,?TY0=,9
MS"?H"_JQ&*-NIX<Z*&5HF?"M)"R6 U/!;32G&54GWY<GV^^<C&WTP)E*))JP
MF,:G!";(J+78!RWW]EG&OPB[1@Z^0K9E]ULN-/HXW&V!CS\.=\ZH<>J7<0H^
MYS(OT_8 Y0%N^P$ZH=S*#8GHT(",(:G842/\_ E[UM<VYUV2;'PALA/'NK5C
MW7/LX0R2Z91%/*=M/BNQ_0*K<^8NQ*YC^_"BNV-OM)CA_HWEGYJ-6\PLVW:\
MVNQ$0;]6T#\;&G.54(%  7@GT2EX1^''J!6A;L:E[-VV*>M?,AHN23:^$-F)
M+[W:E][9:(#J ;6!0:X5@K+H%2E!F,Q(697B7Y""H<JI*\0@;/CJX&=%7E!7
MT(COJ'CM(?H"=5A2;=#I.C>XAZ B(W@F]$J)0%1G. 098@NEM4Y1J-M8<2&]
M=O"5=>-^;1H[L-7M](->K^UI2XG>49A]L?$-QHV@?6N& ]]JA&P+%PXLSVD/
M6;]VLW_6S4NN2(;X_P5NFSC_8^+>FK6(:^$Z(RZHQ05GQ8U:!+4I"=YF QL[
MGMU0TF*&??AK:'EK%KC8;THQCWJ#G(IUT6-)>(,M4V5IK5?K-NZNZ%X:Z_?0
MWI7=V'\T96_X0,0Z91)E= 64UK4/=Q)EOU5.%-\4'<@S5]#/%,,$6E0JM 'L
MKSA7AXD^H&YZPW\!4$L#!!0    ( *B295J772+%J (  /(&   8    >&PO
M=V]R:W-H965T<R]S:&5E=#8N>&ULK57;4MLP$/V5'9?IP S@:RC0Q#,0AR&=
MYC(DT&=A;V(76THEY<+?=V4[;J"!X8$72ROM.7N1==1>"_FD4D0-FR+GJF.E
M6B\N;5O%*19,G8H%<MJ9"5DP3::<VVHAD24EJ,AMSW'.[()EW K;Y=I8AFVQ
MU'G&<2Q!+8N"R>=KS,6Z8[G6=N$NFZ?:+-AA>\'F.$%]OQA+LNR&)<D*Y"H3
M'"3..M:5>QD%QK]T>,APK7;F8"IY%.+)&/VD8SDF(<PQUH:!T;#"+N:Y(:(T
M_M2<5A/2 '?G6_:;LG:JY9$I[(K\5Y;HM&.=6Y#@C"US?2?6MUC7TS)\L<A5
M^85U[>M8$"^5%D4-I@R*C%<CV]1]V &X9V\ O!K@O08$;P#\&N!_%!#4@++5
M=E5*V8>(:1:VI5B#--[$9B9E,TLTE9]Q<^P3+6DW(YP.NZ/A9/2S'UU->Q%,
MIC0,>L/I!$8WT!T-QG>]V]YPTG_H07](=@\.QTPBURGJ+&:Y.H(3N)]$<'AP
M! >0<9BF8JD83U3;UI2>"6+'=2K752K>&ZFX'@P$42OH\023EP0VU=44YVV+
MN_;>9?S!^"GX[C%XCM?:DU#WX_!@#SSZ.-Q_IQJ_.2J_Y/,_YZCV'4 5(-@?
MP"C,I5JP&#L628A"N4(K_/K%/7.^[VO>9Y)%GT3VHK%!T]C@/?:0!(3D@=-U
MD_1OQ\^@)>,J9Y4P);_I%I+0Z6/@),-B1K]Y+ H$S39P*#$6*Y3/1X ;DF*%
M^]I>A6^5X8T.K\(3_\)MVZO==O[OY#H7P4NG: ]3Z[SQJ:JW=]2@0#DO555!
M+)9<5W>G66V$^ZK4JU?KUR3HE?[^HZE>@P&3\XPKR'%&E,[I-\I(5@I;&5HL
M2LUY%)H4K)RF]"BA- ZT/Q-";PT3H'GFPK]02P,$%     @ J))E6MM.@7\\
M!0  *QX  !@   !X;"]W;W)K<VAE971S+W-H965T-RYX;6R]66UOXC@0_BL6
MM[K;E4J)[;SV *EM$K6GW;97Z)WNHQO<$C6)V<24[K\_)V2!."8MJKM?( G/
M/![/8\]D\'#%\J=B3BD'+VF2%:/>G//%R6!01'.:DN*8+6@F?GE@>4JXN,T?
M!\4BIV16&:7) !F&/4A)G/7&P^K933X>LB5/XHS>Y*!8IBG)?YS1A*U&/=C[
M^> V?ISS\L%@/%R01SJA_&YQDXN[P89E%J<T*V*6@9P^C'JG\"2$3FE0(?Z)
MZ:K8N0;E5.X9>RIO+F>CGE%Z1!,:\9*"B*]G>DZ3I&02?GRO27N;,4O#W>N?
M[&$U>3&9>U+0<Y;\&\_X?-1S>V!&'\@RX;=L=4'K"5DE7\22HOH$JS76P3T0
M+0O.TMI8>)#&V?J;O-2!V#& YAX#5!L@R0 Y>PQP;8 E ]/>8V#6!J;LDKO'
MP*H-+-E@WZ3MVL"N8K\.5A5IGW R'N9L!?(2+=C*BTJNREH$.,[*E37AN?@U
M%G9\?'Y]-;G^>NF?3@,?3*;BZUMP-9V ZQ!,+DYO@XOKKWYP._D#!'_?74[_
M WUP-_'!YT]?P"<09V Z9\N"9+-B..#"FY)S$-4CGZU'1OM&9FDJEE8Q)SE5
MF9]WFY_.9G&Y-DD"%B2>]84S$5G$G"0*+O\5KBA:ILN$<#H#C,]I#B*6BHTZ
M+W?0,Q43%?<4?$Y847Q1T ?=]+>4BRTNN"G)LSA[5,TV[*:8LM;$!D+IC=QH
M(S>J>,P]/&<D(5E$C\ ]?8RSTAG 'L /X1@@'/Q%LF. X1% !D(J1=?D5D5>
MYJSGL85MY#G#P?.N<FV8Z6!LX";,;\/Z$&%/@@5M&+(A:H+"SFF7Z?FD6)"(
MCGI"UH+FS[0W_OTW:!M_=@05;X**.X,ZX2QZZI?Y;58M'+%J2)4VZ4MY+1;.
M%>,40$>U=LXZN=_N^3KR:S)[)U80V[:DCZ]SR$ G6:B)K"&CN9'1?%U&P!:E
M= 4026V=F\ RBWDAM*1Y% N)51J:K; C:$%I5[1!?1-ZDC2=+AXJC4ZR4!-9
M0QIK(XW5*<WU:TGY"&3B+4RDLOHI)R_*HG+6.<ZANTTGF6^UEP=T#5O.ACK'
M##61-32U-YK:G9I>"<'6:JETZK0]5">=9+Y.LL!NYVM1>K$M53>[50(E6$,!
M9Z. \[:7 2IRW9[7 *P2QVEY;6'7-%TIX;5AIFM;<E[TV[ ^-DQ+BD'0AD'#
M=.5!0Q7,\[ 'U;%R-[%R/[#&=W(?NIK=]@QMTS6DJ.H<,M!)%FHB:\CH;63T
M/JK&>^VP(P=*J_2\C>J[XM57$J?3R4/%T4D6:B)KB .-;3-J_*(ZWSW0H5M.
M*YM?LS66DNM(:R30.F:HBZTI[,Z_#/ =Q;[;^&"Q=++Y6MF"FJTA/;0\0^K0
MPM=Q32&V_3]\XQ\ '37?5&J$VD7?@J+R2 E0@3,]TS'DJJ_ ]9%KN7+95^ 0
M,AS+DB/6QD&$70.;>T*V[>[A1[;WW>0'KVU%@^]Y-I*#J[7#U\H6ZF)KJKEM
M\N&'=?FPW<%#!SJ6O ,4C;[8O*V7@&Y'#Q9):[.OBZTITK;=A[^JW^\>Z.#M
MI[7CAXJ6'T$/0CD%:NWY=;$UI=UV_? ];7^W\<%R:6W\M;(%4-'ZFQ@Y6*YK
MK^*:0FR;?_C^[M]2:N2T3P%LT>1X<AY4X P,L7P,H,#U+<.43Q4"!0[;IH'D
M?P 4.(A=RS#DD UVCLW*8]1O)'^,15%(Z(.P-(X=09&O3R;7-YPMJI.T>\8Y
M2ZO+.24SFI< \?L#$R\"]4UY.+<Y'Q[_#U!+ P04    " "HDF5:;"B69_T&
M  !E'0  &    'AL+W=O<FMS:&5E=',O<VAE970X+GAM;*U9;6_;-A#^*X17
M#"O0U"+UGB4&7"M9/:Q)4&?=9UFB8ZZRY(ITTNS7[T@YDBV=U&SP%UN2GSOQ
M.=X='YH73T7Y5:XY5^3[)LOEY6BMU/9\/);)FF]B^;[8\AQ^617E)E9P6SZ,
MY;;D<6J,-MF8698WWL0B'TTNS+.[<G)1[%0F<GY7$KG;;.+R^0//BJ?+$1V]
M//@L'M9*/QA/+K;Q U]P]>?VKH2[<>TE%1N>2U'DI.2KR]&4GD<LT 8&\47P
M)WEP332595%\U3?S]')DZ1'QC"=*NXCAZY'/>)9I3S".;WNGH_J=VO#P^L7[
MM2$/9):QY+,B^TND:GTY"D8DY:MXEZG/Q=-'OB?D:G])D4GS29XJK _@9"=5
ML=D;PP@V(J^^X^_[0!P84*_'@.T-6-O Z3&P]P;V:PV<O8%C(E-1,7&(8A5/
M+LKBB90:#=[TA0FFL0;Z(M?SOE E_"K 3DUFMS>+VS_FT?3^*B*+>_CZ='5S
MOR"WUV0V77PDUW_<_K4@9^3/141^>?.6O"$B)_?K8B?C/)478P5CT)[&R?Y]
M'ZKWL9[W448^%;E:2W*5ISP]=C"&P=<,V N##VS0X^]Q_I[8]!UA%G.1 <U>
M;^X@YM'KS>T!-G8]'[;Q9_?XN[V[^CR]G]_\1J:S^_F7^?W\:H%%N?+BX%YT
MLSB7VSCAER/H!I*7CWPT^?DGZEF_8A$ZI;/H1,Z.HN?4T7.&O$]NH%&*/"DV
M'(M99>L:6]T/'R?4L9D/T_9X& T$1MW0\H]A$0*S&+.]&G;$P*T9N(/S/TW_
MAJ*'QJHD405TUJ3($Y%QDM?4]/,DEFNR+8M' 45$EL\$%H(R5B)_J#JI4(++
M<RP([BD3YY3.HA,Y.PJ[5X?=&TR<B(/31,1Z+<*B5EE[!Y/MND'82AP$Y/A.
M*VT0$--]"TL:OQZ]/SCZZ:8HE?C'C)X4*\@3%></8@EI$TO)%=JG_<Y O- .
MVYP0E.5:M$4*0U'?QUD%-:M@D-5"%<G7,[VHIP3R'I2.K!CR[_J:DU]N"L4)
M]=]B](+.D&@8>JQ%#T%Y3F"UZ"$HV_-ZZ(4UO7"0WJU:\Y+D17YFBADK8(Q7
MV!D+:S>P+H32=AIV,:Z-\Z%6(R6L'Q31BI<ES):*OS>3I%O8(R^?T5G:>SP<
MQYEK.>UI0F&A'[1((3";.4X/KP.)1 =YS=9035QJY7,P2Z:P"*@@DHEX*3(S
M8_N<9!1G2[LTJ!W:';I=''5IP-ITNS#?#_NFD35TV3#=UZPM*#W6S4T:,K]#
M#\%9OM<I.P0'[NRPIUO21F/189$UO_ERM7B%R*(G55DG]1:=RMMQ"!NA18>5
MUC1-A6[&1J5 LD"*J&=3#?S;3FRU@$$CZG0KP/.==@?#8*[KV>T$P;Q9/NW)
MCT:#T4&M,9DFP$&*E^54[I92I"(N(>_?&2$&#TW3CC50=[RJ[&V\ZMWN*%EH
M,<MILT: U&&^U2D,#$@A0'W,&QE$AW60J?V=7G&AV8G\D<O7U'U7TP!!+W3\
M-D$$2)V =2<6 S+J'73*8X*-4J+^8.E?SV^F-[-7E/Z@XOK/I7]*;]&IO!V'
ML)%E=%B7W<7/NKQU$:1\";L2*7=QGG 0:1*7FK0KH,[<3LTCH'9CB# 0I33H
M28M&B]%A,39_X: KN]ALH/#E.H;HD551FEJO"_^8[HL(=?'21Z08+&"T3;T+
MZRZ;$>;,MRV<.FM4&QM6;0?3^234>EUDJ2YYT'# 'N*@:9M8$! \*N-F;XJ1
M98A(@][NMLAB,"<(O!;;X5'_SR1GC>9CPYKO("JP ]=-4-_!):P$1@WA^T2&
M*+R0=10Z!J.A%;15.H9S&>T10*R1>.P5$N^ES:]$#OG\XS;/NG+LS/9LJ\T-
M@5'8![?WC!C.\:P>^<H:<<<&E<_D:K7BB9DX*%TN'O1^,3$*GL"\0=GNU3RD
MMJYKE*F-,'6M]MX8@]$V*D*=,=JSDK%&@;%A!3;/DY+'>H>5\NKJK9[-7DZ(
M5@J<H+TQG"$XQW&]]K]?",QCH=/3B%DCO=BP])J95KOD#R+/=4K"-#[SN$09
M=560S:S0;6\W$!SS/3MPVY00'+4=NV>?SQI1Q7XLJMX1#MIXB$U7\C#;HW;0
M9M/%8:PCS-\QZV,VC8)BPPIJL=MNJU4@SD@J9)(5<E?R6A.O,O H\NI("MHD
M^B\D.ZF\.JFWZ%3>CN/;R"LV+*^J[7<L4I+N2K,2K[G)&B-%7OX"UJLS&MB@
M\[>T:SNTK3@0F..$=J=W=6',]L/V-F-\</ZTX>6#.<>3L%KN<E4=Y-1/Z[/"
MJ3DA:SW_0,^CZL2O<5,=0'Z*2V@)DF1\!2ZM]SZ,J:S.]*H;56S-*=>R4*K8
MF,LUCV&MU@#X?56 3MO?Z!?4)ZN3?P%02P,$%     @ J))E6A1M\#J%!
M_ D  !@   !X;"]W;W)K<VAE971S+W-H965T.2YX;6RM5MMN&S<0_96! @0)
MH+OMU+!L ;'32PJD->)>GBGNK)8PE]R27,O*U_<,=[66@\1 @;Y()'?FS)DK
M>;GSX3Y6S(D>:^OBU:A*J;F8S:*NN%9QZAMV^%+Z4*N$;=C.8A-8%5FIMK/E
M?/YN5BOC1NO+?'8;UI>^3=8XO@T4V[I687_-UN^N1HO1X>"SV59)#F;KRT9M
M^8[3G\UMP&XVH!2F9A>-=Q2XO!J]7UQ<GXI\%OC+\"X>K4D\V7A_+YN/Q=5H
M+H38LDZ"H/#WP#=LK0"!QC\]YF@P*8K'ZP/Z3]EW^+)1D6^\_=L4J;H:G8^H
MX%*U-GWVNU^X]^=,\+2W,?_2KI-=0EBW,?FZ5P:#VKCN7SWV<3A2.)]_1V'9
M*RPS[\Y09OE!);6^#'Y'0:2!)HOL:M8&.>,D*7<IX*N!7EI_X*B#:7*$?$FI
M8KIN(X1BO)PE&!"QF>[!KCNPY7? %DOZY%VJ(OWH"BZ> \S ;*"W/-"[7KZ(
M^*MR4SI9C&DY7YZ]@'<RN'N2\4[^'W<[L--O@TF_7,1&:;X:H2$BAP<>K5^_
M6KR;KUZ@>CI0/7T)_;]2?1GL-Y^8%C2A%U#I#VSDNPJ)(]WM8^(ZTL_!MPU]
M='I*;UZ_.E\NYZM!*.\7JS'U'VY\W2BW__K8MZ$_(A\.ASONS]Z2B:2H"?[!
M%!R$UM;ZC;)D_=;$9'2DQ+IR'OL]16];H1^G=)/[@T.D-C+!"M6^:*T*8TB5
M::<"3U2<J(GDQF@>'+A3ZFZPKEQ!!7KG"9F2)WB=&#B8@H#$*@6E[[-PS2JV
M@='\%A,E[#&<(HQKCBMJK')C4M9ZK1!R$>='UL"B6)D&XRQ!*BC!5FUA4A9I
MU%[P76Q\2"HGQ[@';S*DTEJR(W+**;O_PH?X0*7@S'TE'%@%775X'&1>]P))
M!5.6G9]MVI-65B-*V=45E<9R/VDZ(Q%T@X%<X76;"1/ R-1"+O8NY?4J;S22
M;AD..D@C;)$\RBH<90^I%1=05)L]? TX- WLNRW<1.J1L2WB@5EFU<8C. @K
MU9BK9H*$/BL$&*M;!W93^AWY;@*@  ,QMH<2BKD4]% <.Y,J*BT_FHVQXAB,
M-LA7I:+HBO!3ZMED\G)AX*;:#-TR[A*D\F4"2H@(HMQP:H4?,N50@K@?3!R8
MR2V'T(&(5#@0<QG"XE>I/E1^I#?*H'81+.5R:%-H47/B7'P[/HK"H9Z/-(W3
M%O4DZ)4)Q43"O'^>@TYT3&7(=Y5D%2V2U7,>^QK8!'^/L[XQH![,)@=G8ER2
MZQC)T;G1#7>EL:L,"N_)EAG"J.B>]Q(K)5>E<<)/F/6SQR#0NQR HM5)Y Z>
M^;+D .FQ'#[9>)XKK8;@@2SY1F*:JR-W,!I7"]68X#3*%Y(\&+#\P#9F^-AF
M1=IB0J-24*,>*:_-ERZ:W$T7-!!*N&\ X[KW$&A,OS7K9T<W,FIPF]\=4KVM
M2]WE/)P.3YOWW8W^)-Z]BSZA.0R<M5Q"=3[]X6Q$H7MK=)ODFWR_;WQ"_O*R
MPO.,@PC@>^DQ_/N-&!@>?.M_ 5!+ P04    " "HDF5:ZRV6E'HH  #]A0
M&0   'AL+W=O<FMS:&5E=',O<VAE970Q,"YX;6S-7>F3V\:5_U=0D]V45,6A
M1B/)<5E'E2S9.2J.5#-2O%]!H$FV!0(TCJ&HOW[?V?T:!#BRL]G*AS@:$NA^
M_?H=OW=T\\6A:3]U6^?Z[/.NJKN7%]N^WW_WZ%%7;-TN[Y;-WM7PS;II=WD/
M?[:;1]V^=7E)+^VJ1]=75]\\VN6^OGCU@CY[W[YZT0Q]Y6OWOLVZ8;?+V^/W
MKFH.+R\>7^@'-WZS[?&#1Z]>[/.-NW7]Q_W[%OYZ%$8I_<[5G6_JK'7KEQ>O
M'W_W_5-\GA[XIW>'SOP[PY6LFN83_O'7\N7%%1+D*E?T.$(._W?GWKBJPH&
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
M=H2KZ;+330>=ODK+?KGSWC+\(,+R'-]E@6%BD9_!$7H@1[*9Q,N4.!U/_XW
MJ$$W>]M]R([9,KZAGSW=&*A?0_][9$6';&1;P6%?'?G,=L-;.Q,Z8*6C,\9W
M?9TQ9F0SVS&BP 1CL#4!,28PW,AC)TKOY.8]GH*<DOT&KY7#:.!0(7.I.*0+
M3MO>-7P_TNY<U^ON/.QFP"+'H=C:PHZ_:X^XQL)5\77KF;9]@N#.&[OI'D/)
M![A'8G94EWQU)B_:V-,*_4$976TL[(L\+S*17QQ5O%BLCJCO9%^X<9:>4;;7
M\5T[U'N!BDR_EZ61!74+M7LWQ!V5^B:NKA/07T@.I/#=JD_1#X+VKJ>-XCBF
M/J;GRC%#RR=9=NBO!3D,K4/VD9,E$I,LO5!'1-_-BPXW+G<$KA[>8NO()BK6
M"<9:3H &RPQTL@W'B@;,@?E:,XT5@C]H2#I?Q?E%2IK<[-](F^J0"NN%)N$C
MVS2<2)_#&6P'=-8>WD<Z&VS?T^I\ X??D$=/>?U ?BT'*V?D^*RNNU7FQ[0>
ME T '8DO"MYX$Q*9HF.&1&6>+OO=1'!KFZ9N[FRW5W_PT?9A42(T083LX.);
MAA<X[/TUP<KDB+?(]HVF2H:IC^D:CF92(,%N;ZA#.:C64Z<F\ V(#OLFG?@\
M7FA2""KT?E&HC<$LS\0%_PW;QA$#9Y6B#5[1J0T=C'/-8/C:,*[M:W/+80):
M.:3)9C\+,;V"&\@\.BO[H]/Q#-_L%Q1 ^ .8(<.U(Q;@]("-LT(30_16Z"%'
M3MM*NN,3+(=BG+R,$V4&I!^.$(?"1HJXX0W691LPZ?[G@E=S(3UP:EU,Y8-
M&3B>G)_"Y5FF"0M-.(DT(3VD:&'34[&8P$>4T\DZZ^5:)*'W2<OVR5LESVY%
M=<%EJH3T=>$'M_%EV09R>HPT6QM$0::K6W$Y>5@KJG4'[[EDB_B&3=,93*%R
M];LX<W,GHR4%=:HKIVA2#H48F%95I!3V?N4(B.0L</6&:\3&D6B))*'@&[1/
MIW*;,&^:JYPJ&;9/1%VM676[XGP0D6)VLN0HOXS3C'C?(!G;U]/0,NEB=*Z>
MKU+$DC?!5L>;VT#&0$!;5V6-X8.<3KB$S1>BJ&1<UB(R:2\/4X@OG]49UG7)
M?TP\LB8N:$()Y6+O9W"A[PI=ZGYH+LNP(&Q;VLV/=<;6;^K\E<Z;[MNK;DPM
MLRETV-&MCO;*O=.U5=?U9M5K:KV5WION5\LE#-9:6J',QG[AMB:))%U">ILL
MQC:4=5;UF!U9+QEK(X;A%[!R2HN@DF2'+@IQ!1NXS.(&]NN(B8NT3S[0R9*4
M-,*Q0H2*JZ=\6L,\D_!+I 6.%91O"0K+77/LL5"^??P^Q\N]E>/U@4\*B9;@
MB*86SOY ]V]I/DTO!/O8/E_>_)#MYP*'T?14A:/-::*5-6>(1+'E AN85D>R
MI<4Z6J188?O<;9BS4H@86QK/>'6C)[940F0/P[D=_S'RQ/;#N=?'V#WD':Z%
MO'7V/AO(VXJTY)LGQ+R]G9BW]XPP[Q49E!+3PFV=CS3'(4)/D,D*P7& C[86
MV735BG.APR5:VIEM;E'IC6EG_3.JC_ &LO^P,R@4/9MJ%5<5;]+9I#T*>7[1
MYJC E%8DZU+EIO$-00$-(DQN 2_B)O$::DR@>J$EN#Q$=;T^;_)')GB:FB*L
MEU'SMJK\6654B9YC;I/0O3S0%13[:N!*JL'IY'L*=U#9T\TP<1=G2XO;WC7J
MTKDQ]X",%42<T:FY$2 >G*7L!2+KT&I0WX:"$?N,+3B$5XG@V7689X1>'WQ;
MKFU02+L1T;4BP_/,VVB<*KXG6NMZ(1MID(OK]<&OY8%.Q,9$IX9'^T2GLR?
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
ME=ZI%F$217E8,RZ#^=2/W>OY5&VLX!+O-9A-73/][P*%VLV"..@&'OAJ;=U
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
M0V*Z84Z_$RKK0.LK2:FP->P&PW\W^P502P,$%     @ J))E6MNC3QIH!
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
MZ!)XDU==820QV:8,*3YHI.=TB7VIGL,,X#-=&XE$0X+8AUXH0SA4@NB[1HG
M#$I%M42=6V,$\<4__E+H=521;/2]MOY"XKI8W[&90.UODOXF_MO2?'RA?BZ4
MAMA/1RDD?IA.S'\6P6TII#XSWNG3C8(,1I,QI'$*GX5FU9XU+9D!2NA_G!K0
M+,QVK]]V;5NA"0KBS9DJ84G&)O>Z!N!J<<4TV8'<N!=W:_+/O^&B0Z[Z(_?]
M'RZS%J/F9XQ&9I"BWK?1)E4*6D!-1YVT]C:A[UQ4<;;@%=><B!,_B#)R_V1B
M/!4E 7R@5B=-LSD3R[-.F910:#)GH2EE'2P^Y"5K5F@SSH&*1<57S"5G[(\#
M"Q=/($N3P\[_KUW^FAM?TNW[\,[V7A*/*I>D4:)7O9SN-DM.;,4YA6@P@7@0
M[',57.6B(T>0?@@GWYW":!!"0K_M:]=,=]+YY4"=ZKOM1:TR2^+HJV74^//&
M>HJP+[9NNK ^9*9-9R#XE/P\&H=F.8;('X6!6680^JD[G5"I2&D1!T_V#"?F
M(+2-@BHW#7I+TRKZ\H31Q::V.+U;]EC;VIWYHW1, BB* FY[C E&8D<J.2?T
MZ.DSOGY$COV,1+GJI#29$/OA.(/WHEFY D>%ZJE$'>K"P]X$5*-<V3E/@76G
M&X9VI[M1\IV;H)[(W1QZS>2*DT05+HDU&(Q'GDNW[4:+ULY3"Z%I.K/+DL9A
ME(: [I>">O5F8Q[8#=CSWP%02P,$%     @ J))E6C-D><FB"0  R!@  !D
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
M1O%^YO6.IJ.SAVUR!J<K?7&7NQ&\XP(LT).RS)!.'^;!,Q!"KW!-G4BHG;]
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
M?5J_)]>_>?A5E#. 99;)*89B616<L%+_CD!?U,52G=T?%75=+-37N13H*42
MY].BJ-L+FJ#[,<?E_P!02P,$%     @ J))E6E3.\KMS"P  "R(  !D   !X
M;"]W;W)K<VAE971S+W-H965T,C8N>&ULU5IY;]M&%O\J [4I;(!K\SYR&$C2
MM$VWS09-VJ)_CJB1-0E%JN30LOKI]_?>\)(LV4W38K% 8I+#-^\^AWJZK>J/
MS4HI(V[71=D\FZV,V3R^O&SRE5K+YJ+:J!)OEE6]E@:/]?5ELZF57/"F=7'I
MNVY\N9:ZG%T]Y;6W]=73JC6%+M7;6C3M>BWKW0M55-MG,V_6+_RDKU>&%BZO
MGF[DM7JGS,^;MS6>+@<L"[U69:.K4M1J^6SVW'O\(B1X!OA%JVTSN1<DR;RJ
M/M+#Z\6SF4L,J4+EAC!(7&[42U44A AL_-[AG TD:>/TOL?^#<L.6>:R42^K
MXE>],*MGLW0F%FHIV\+\5&V_4YT\$>'+JZ+AOV)K8;U@)O*V,=6ZVPP.UKJT
M5WG;Z6&R(75/;/"[#3[S;0DQEU]+(Z^>UM56U 0-;'3#HO)N,*=+,LH[4^.M
MQCYS];K,J[42[^6M:IY>&F"D]<N\V_W"[O9/[/9\\6-5FE4C7I4+M=A'< E6
M!G[\GI\7_KT8OY?EA0@\1_BN']V#+QCD"QA?\!?EL[O#X[LI(AXW&YFK9S.X
M?*/J&S6[^NH++W:?W,-;./ 6WH?]0=[NW_VF,DIXJ?B7F.+I'^8* :N$MD^&
M7^E&*%F7:H%E859*+*L"0:G+:P(0']I:-PO-T=(\%E]]D?IN\.2SK[!HBW!G
MHYZZ_PU\61<:MI']IP_A]"'XR]R\E*5<2!&[CN=E(@H</XQ%F#E>E(J?2VW
MP3LC#;25^4X<)"+VG0 @D>?X<2K^ [75(J_:TM0:0$'JI$DB@LB)8E<$@1.X
M_D#+RSR@"(2'S5[D"P_O$S\=WK\>C"/4+;)LH\19K?+J1M6[<[(6K-?6]3%[
M_5_9ZB4)49J),P[R=N;P?<=/H:#8"9)89$Z<! ?6\%+']5V"B +2I..FT1UK
M8-ES79$Z@1>)R DS=V $E@YAFA!F!$=^"KNGXFNU5)U^[[/$ [YT%L 'HG-Q
M!D^)LW,0=J/L@/T(W)[A1>P"SG/2-#V_PSW6D\@_%YX31IY(1A^GC2%>X)HE
MV$A..ZHXA+CD>Q%6([)0F/GWN1CR AO,L9:2Y<)::2L;X4>/!-:#1W8Y?"2J
M9:^<(QG%05EN-HH+:[%S4+K,2N2GK3U7Y+N(@$<@DHB.BO=)5"[N<R<LH3-I
M;,2P5T(H0&TD6=E45N1-K=& Z&(G%JVB58DZ;C=RI &A-+#)O"73R1NI"SDO
M&!*%MC"P6D<;T)T3D"04HIW9_PU!%]7ZDY@-CS ;_*/,EFB::O5[JVNU)B:Q
M)Y<;;62A_U"D=81ZOF+PA8+RJPV#=0(T?5K:<_6+HU'5!]/ ^R=:B,BT1H,O
MR<T<'.9 \BDO31]VP&JT+("G6BX;M+CSG5BV1?$)N 9;LAHZ!78 8!/!M%&X
M+([+W=OZ4.P_:6LB,EADX/:O&6:DW%E_]+\'M3&*37Q>B/?$%[BO2I!M>,^*
MA+RK -E [0W3++2<@XZA7 >Q20.VH'U& 3M5I [A[E:HYY:QYWE>MVJ?N;(R
M?18C4ZA%B]Q#,>6Y3N#'PD.B#F+:VJ[;0I**BZHAO?M.ZJ&Z.$&6B*_U$NI0
M94Y)S6R5ZH(5FI Y9WU*AI@H-"MP4V/0JLV. 2@FK4E1"Z, ?]TT%3_=:_>%
M-FVMK*J)$(R+I88PI(%(\-<5[RMXTGUV"GPG3%!%7"=S/?'#1"F'&OU$\71I
M9'G-6NQ(G:$DH[-"60M!U _.Q7L%CZK)A(L1.5R2M&'($+6^D50%F$JMK.HI
MQNGEW(BSV,DREPMEY!'"D^).S7V&9C (F)'$R>CF#3+%D5T$ZR=.&GM4Q!/'
M#5#U?Y%%:R-'DB]+XAF=0!B'7.DSZ@A.XG.0@@VIY^88EH#<C1H+#_9WP[$1
M>0XKFSU_MP5]J\1*0CWDP+)S;"KW5%+U=<GU>545BZ[C[YR%@UO+<E]2N=D4
M.N]+"9[JZA;9R: $BR_1HP1N=.%B(BV*+FNT):J(-F02FC) @PW?M/-& SVW
M..3BDAVC:@V6%4'8Y,))!9FRWPMI5AJ^OJ5,4Q)L38S,*6_=J,:P)J%433G.
M-A_(ZW/%(H#H!S0,70IMA@%HR0)O5XKSXX[3T, U\M%"WX!0N0"G-4&#>*.
MMFIK@5$\_]AGUJE4%^(U0R+'DT2@6:N-1/J$LKJVW:I_(IH2VZHM%C"_3?]R
M\0&S/M.9>"ET?J/Y^*,O.%QJ+#%4]K6F8<ZLX ST=E [JZ*LD)7*:ZB-=3:J
M:E1@;X2)!28T)QTP.=&>=]Q8>RYKU$4F?4L-&D7CL+UCJD'Q:4T%/ZVY"A$J
M6J?2 [N2(&A9QAG'L,O-Z;3H[YMK_MGYYIZ1^Z$1\'.O+ZOUG)V $FT^AO*A
MUOWX(D*_O7_Y7.)'AHLY]Q.5-:6<PWTZ!B+725"&0A?#443#2ACL#<*VH3WK
M^Z1S<H<]3:*TM06G#G*ZAUWC+<)#4GLR*28-S588"CU8,)H,AZ\ D',>GL+V
M96U0*N6./I:YJ67)D.SM=(;1,@OL>!=EYT>0$[S(5ZB#E K+85+:D<<9O2;A
MI@R@,%(1"5.:+;T)RI>,@U2$..:DW-ARR(F]VNM+&Q''Q"./G&=9XI\_I':N
M'+*PH=J"DQH1:B7>5(WF(P>4V) +G)>PQ%[JC7B/E<0H#N%V 6"C:(0<.III
MPS*,O;[C!^X(##(A"3$\)\&D)O(T[9#/%"T7N"'KWEJ5BQA-&9WH1&EXGPO?
M.T_WUU^[2CMM*= "HEFO$7,@O94U5&]+&##KOZG?_;NNW63PJ=M>D20[Z[#=
M3- -%Z]^?/4<?8F6XJW,]1*YR#9?2) Q;_?\)W>N44;_ )*<!$$"Y?\ 2L?%
M8+R/$,[HC?$^._H^%5X8XW7@[DG3T^!SNB ]^<X/DN$^0&>,$HE(6=)8W8,&
MGCO<PT%%DJ7PJ[[>GL1,YUC]?<9SQ2G(# GE+H=(-U'<[?30BP8TE\3>6*C>
M[YT8H@V75%PQL-0\CI<Y&N!QYJ/2RQ;K4\HX$^VH9:]RS8M\QG,J*QCY497_
MBVFNGU30!\[5M2Y+[C&7UE-CE-Z _OJN^+:F,.U'7YML/._)D(N[#@M1G\0B
M<#+XS@]RTW!JMC.Y+:V*F]L"2=O(+B.B#F248[&+AH\)2^@H!V8PF@1>Q]*=
M;(+>TR!XU&),PMCWI8A0K_M6FPW0G8@1/Z=L(8\."6A6#?D"X!J>QOKN$9GO
M3R7^KK<TU%5V9T?<N]E4EU,Y:3?$US[7G8N1X]6+/=]BA,.1%C>37#%ISNNK
M+!%8MC3?LA*YDS<KB#&BT50"T:VB_[@@A:*#U.JFDT\;^YY:3O27NP/QOQ3N
MA7?(ZBD%Y-RXCPSOG>AUQVJW!CV&6-M/8T-E'H]W:"[!/BL+SRSTOO,L-%$\
M*)(5-FT-RM;9.@58@A([.L>;[U![<D0NWMSY-L"Z(*U?EW2FUT^%&,>1QS!Q
M4$\#YF7!HW _4S_@5D.T3(2_.#&5,H6#Q=#I-#PPMCB@PN%@6S[K7IAF*"EA
MJ"HF1B<5C?GJN%!T,->@+IMNW.59;CJ4+C7[@=)U=U0)-5M!Z9M?7NLY]=>[
M;CI!H9?;X<AK3]<<FD,H\(!I!U[%5J!A<QS*)B/JWGGAOF'Y2*4UJZJV9Q7
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
MSSRBV@=5VS"R=H^8E32X*NYS@V]04-8 QPN)=\^N80,,K]KEGU!+ P04
M" "HDF5:5I%X,88%  !I$   &0   'AL+W=O<FMS:&5E=',O<VAE970R."YX
M;6S%6&UOVS80_BN$-Q0-X-J6++\T30PDV8IU0-L@[5;L(RV=+;8RJ9*4'?_[
M/21E17%MMUA;[(,EOMP=GSO><R)]L5'ZD\F)++M?%=)<=G)KR_-^WZ0YK;CI
MJ9(D9A9*K[A%5R_[IM3$,Z^T*OKQ8##NK[B0G=F%'[O5LPM5V4)(NM7,5*L5
MU]MK*M3FLA-U=@-W8IE;-]"?791\2>_(_E7>:O3ZC95,K$@:H233M+CL7$7G
MUXF3]P)_"]J85ILY3^9*?7*=5]EE9^  44&I=18X7FNZH:)PA@#C<VVSTRSI
M%-OMG?67WG?X,N>&;E3Q060VO^Q,.RRC!:\*>Z<V?U#MS\C92U5A_)-M@FR4
M=%A:&:M6M3(0K(0,;WY?QZ&E,!T<48AKA=CC#@MYE+]QRV<76FV8=M*PYAK>
M5:\-<$*Z37EG-68%].SLK<U)LYN<ZR69B[Z%23?13VOUZZ >'U&/8O9:29L;
M]KO,*'MLH \L#:!X!^@Z/FGQ3RY[;!AU63R(1R?L#1L'A][>\+\Z&-23P^J.
M$^>FY"E==I#TAO2:.K,GOT3CP8L3X)(&7'+*^M?!G59_HRPA3NP9>V2H[J5U
MCVMBJ5J56AC*F%J "9\K881CQ3--!;<83I6QIHN7M$(N25K7-"(CS0-[LH](
M1K#1PJ#,P$=C=97:2D.<"0EKW/'+L$TNTISE?$UL3B19A<30EG]"<Z'5BEEP
MFED5WGZ2K;D6JC)[1LN"2]-C5\?0,GB$0B**+=9/BRHCH%P+H_26N8T2*<$C
MGH$U G8]O%HS>&#AC?-MKF1E@!R@:%46:DOH?%10 XKYEFWXUH=-MB/7]49
M/U]?U@04 9TSX\)=D$/JA$JM3!FDVA;@V\VWA+ME-N?2[:B  !134?IHM&PR
MXEJB]K*2;YTVYE)=\:(=+ [_7:A1MYQ;B!VJN?-?:=2S70?+:5J3K(B5I'WU
MEREY?]"AE"../797BS1#/MNJ,O/ G"/L<\6U)8V%43U%B#WRD^WV\BCBMB4,
M*ITA5,6VQ][G;L$"WQ.W09;/"^ UN=H8;]@%7TD?.KBG'G/!U)KFG#WY91H/
MAB^^^XV*!1>WOFBUVX?F_X&WH50VTZ[.M3M)NS,\D?ZC[G0P9,/N^/F$Q=W1
M>' BG1!3"BU$OYU<D\&$1>/N<)C QG208$>_X"![/AJSJ#N.IFPR:=!-NLEX
MS&*,)\^!)4FB9NJE,"DO@C./[=W"7B/V2OK]LKG0V2Y-W)8M'M2[^-9)' Y"
M9I1@TKHFU9R6,(4L%8YJ?MX9:^D>*"<AJ[,*B8QCC0L.)N@>)QR7\L[LC@VM
M>=!F*1Q;WROFLK'+?HUZ4WR,B\)%-$=.^4('!B!' 6\CX)+<RSP,8$\^5C*<
M1IR,\_Q0T?,9#@A'"[A:+%#<6%HH4^D:N#O\@(4I!0?](K4!U%!/A78BNJSK
ML@UY[U/$3EF$39,[QSD<^TL@<'-B4J&8\J+7;.$!*K:9^%"O N,?>8J]%/YL
M!]C?L'<_CK ?FE"]#5X>$[QK(KD;N=G%HPF C]LU+T)UM/M!3EB2Q%XZBE_X
M]E53W_:H"#9%.$]%DRF[X29GF>8;EJD-"/AT-!B>L:>8QG,<C<[8&Y2#=$]J
M5YO%$M^!^Q!\J)XUR[OV<:BC1N[0^S&O1]_ ZX6J-)+\(+%'WT'LT4\D]N#_
M)?8/)O%!<_[;$>B,F%1:UX="MP?W."-8=Y1!(*(F$!!&/][U?SK[#VWP][/_
M@?5?I_O76;U/D:.LGDRF_O<%I<?1^*Q^GN)D-([]KP9YZ-+1;UW_5H1D<9=<
M@YVNI TWP6:TN4=?A>OC@WBXA+\.E& %+: ZZ$U&':;#Q39TK"K]97*N+*ZF
MOID3QT'#"6!^H7 GJ3MN@>;?A=F_4$L#!!0    ( *B295JWV%S&0P,  (H'
M   9    >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;*U5;6_;-A#^*P<5*&Q
MB"1*LN7$-I"D*]8!78.FV["/M'2VB$JD1E)V\N]WI&S%!1(/V/9%Y%%WSSWW
MPN/RH/1W4R-:>&H;:59!;6UW'46FK+'EYDIU*.G/5NF66Q+U+C*=1EYYH[:)
M6!S/HI8+&:R7_NQ!KY>JMXV0^*#!]&W+]?,=-NJP"I+@=/!5[&KK#J+ULN,[
M?$3[6_>@28I&E$JT*(U0$C1N5\%M<GV7.7VO\+O @SG;@XMDH]1W)WRJ5D'L
M"&&#I74(G)8]WF/3.""B\=<1,QA=.L/S_0G]HX^=8MEP@_>J^4-4MEX%10 5
M;GG?V*_J\#,>X\D=7JD:X[]P&'33/("R-U:U1V-BT HYK/SIF(<S@R)^PX =
M#9CG/3CR+#]PR]=+K0Z@G3:AN8T/U5L3.2%=41ZMIK^"[.SZL>^Z!BG+EC=P
MSTT-'ZE.\$D.]:;$+2-+?IQV5!XQ[P9,]@9FPN"SDK8V\).LL/H1("*"(TMV
M8GG'+B+^PN45I$D(+&;Y!;QTC#KU>.G_&O6 F;V.Z6[/M>EXB:N KH=!O<=@
M_?Y=,HMO+C#.1L;9)?1_R?@RYJ_*(K $WK\K6)+<P#_[@&\UPE8U="SD#BS?
M-&C ARLME,ZDTVHOJ.JP>89);V@CY!1HB&A"(!M_#8459*>QX984K(*RYG)'
M1X+NJ3%H#7!902/X1C1>^=JSC-.;_[Q2+_4T?GP[O;7_$[D>FG<T<YUW+F3G
M0@K?-*^0@BM5+ZT+K42Q=^F!-&2+!4QF83Z;32')$_AB:]2OZDZ2L(C9E+2+
M= HLS(L%/&CLN*@ GV@0&QPRHSS$),G">>+TBS!.%[3FY"6>PNT)N^//'IAP
M9P7,PJ2("9P-*KK''W(,DT48)_,I+$(VC\E]EJ94_5*U2*5^PA>X13Z#2991
M//,\A2]C<1ODCN$DS8A,2@F;+/(I?, M:DV^-.Y1]@AY6-"_) ^3+(&"O@SN
M7QK@K%=>;04*.PT7*9MZA(+!/)POTE,Y7KMKT=E\;%'O_"M@P.=H&)7CZ?C0
MW [S]45]>*4^<[T3TE"D6S*-K^8TU_4P^0?!JLY/VXVR-+O]MJ;'$K53H/];
M1;?N*#@'X_.[_AM02P,$%     @ J))E6K[J3-<="@  FQH  !D   !X;"]W
M;W)K<VAE971S+W-H965T,S N>&ULM5G;<MLX$OT5E*8J%5?1%N^2?*MRG.Q.
MMI*)*\[LU#Y")"1A31$: +3L_?H]#9 4)5\R.YMYD4@*Z,OI[M,-\7RK])U9
M"6'9P[JJS<5H9>WF=#PVQ4JLN3E1&U'CEX72:VYQJY=CL]&"EV[3NAK'89B/
MUUS6H\MS]^Q&7YZKQE:R%C>:F6:]YOKQG:C4]F(4C;H'7^5R9>G!^/)\PY?B
M5MA?-S<:=^->2BG7HC92U4R+Q<7H*CI]E])ZM^"?4FS-X)J1)W.E[NCF8WDQ
M"LD@48G"D@2.KWMQ+:J*!,&,WUN9HUXE;1Q>=]+_YGR'+W-NQ+6J?I.E75V,
MIB-6B@5O*OM5;7\6K3\9R2M49=PGV_JU<3QB16.L6K>;8<%:UOZ;/[0X##9,
MPQ<VQ.V&V-GM%3DKWW/++\^UVC)-JR&-+IRK;C>,DS4%Y=9J_"JQSU[>BB4@
MMJ)D'VL?8F!U/K8030O&12OFG1<3OR FBMEG5=N581_J4I3[ L:PJ3<L[@Q[
M%[\J\1^\/F%)%+ XC+-7Y"6]HXF3E_R_CGHQZ?-BJ$9.S887XF*$(C!"WXO1
MY9N?HCP\>\7(M#<R?4WZ'S?R=3&_*"M8'+-C]JQ ]IM /=U3R:A&,Q2XQO-Z
MB8<&R6P"QHT1QKA?\:/;6!<B0.+=">1\(:DF#>-SE#GMPL)"T+ZZ9$M1DSRL
MDZ;0 A<+66.[Y!63 R.X978EF('B2C R4F^T-()5XEY4)^RJ*)0NZ=?'@&T%
M6_%[THUE* ,X9%>0@.?>? '93-7DV$9IR^>0.6\@G/PP'@6VT>I>DDA6J:4T
M5A:&65&L:H7[1V94U9!IYH2]^6D:A\D9^P8+K]5ZP^M'&&">Z)?6/>:L6$FQ
M&$#9@>0@T^PM"8S#L^LO[S^[R^CLB!403!Z73"T<%JTF6A!-SDPK5#R(HB'N
MPK*%+""-8*;LDR5Y]8:O-V=/#&C7GG@7H+8-JC##D#)<#%4[T62R><87X_@/
MUM8PO09:LN246C5ZAZSAC7#;K\I_@[?P_,.[C]_>7WD+"#;6@G"PH,6#*%YH
M!$0!SEW*K 4WC19]N,&X@!_.,,%U#?-@E8 7@L%;BRX$)+A>P@&W UZBM[CH
MD\U S*N8"U:K^GCGI'A GR-TR(7M2A8KO\%8BHZD]!3&!LSR!\KT4B  ,)#R
M!7F_1L[)_[1W(.WB[MAC13&&7)_R;PEM+WM+"5M434D96SD8%Z+5[E0<N4N%
MV.C>HY?V&ZN;PC::_&C7PJ;B]P9A(\7'G8K.25^I\(]<'V+C[83D1FNL+QOA
MP;)P_QB UL<DHB!9>UFDU7JHT!R=L,_/(K\"9[Z$O \+*(46>W(HL(SP?R],
MP;45IJT-Y.!2N33?M$:WT*UV>.XBJDFE90T%9/XXS FH[!)L)^F >[S->]+$
M@X.^](X?Y'.P"Y%+:4$(D6\(YD[;CG@[VQV/(&ND(8\I<3C8 >' W<%RIQ:W
M4I7'5AW[JY-#0Y@DB03VWZ^N;IZI*5_LCPX<(.]5.NJ$N4:N9<5U]<BLM!6$
MMKM,2[$>RS9!'7M(809TTQ!8!]3 #PRD6F];S3V<JZJ]K-IG11]?Q<0]KQHB
M_.U*..5XIH6L[U$&Q/ +:2%.L_:)K/<2$R!!H=WK1(")$-!BV7B'?9\03IWM
MZ=.'R#0(;?^P5,)O/NB,/5&2>[:%9:$JS,"4M;X_M6I<V#%0WY5J6W=.]V#C
MWCOU'?M.^Y[UH[XQ@368T]T0]D>?_0ND[$= -[?11TH?R9^VXBNF@;H!$'D6
M!6$8LFP2![,D8NDT#\(H99^0/J?L9QQ("M74MN>Z0AD:93Q+$NB.EO<)N2UJ
M%J>S8#J=8&;*@^ELPJ)9%L1YA-3S]*\[(R@)D--TTMBQLF,#XQMT6Q#2BK5Q
M/=I/7T9095E1/1ZQ?!+$F)>S))A 59($LUG.;CF_Q0"RL%O>%R8UG=I50IP$
M89[#K& 63EF4!^DD9U^<IFZV\1JS-)@ [#P)LC!C:1JD:0;RW/4JE@79=(;/
M=)+B,T:,K@;-J^UUO%Y*RE"?O2R?!<ELQO(04B/ZBB:3/D I?IW"G#0)@W :
MLR0C%2$&3E?VCJH&U!5-HR!"4D1I'$S3&8NP+4U2+/<=MH_)6PIW>D3?29ZX
M[RB?'&$AU;7S>=<A6XZ)HB"+$C8+<J %YQ'"UHQV1G"M%3A&09XD+$)*15D,
M&Q"+>-JMQ:+>BG0*[2&<"F(@B11/9S'[9<=J-"OO"!$ 7@\GHUN++S+5U?&7
M 0II$L036!!E""D2+HR#.,G_=)5XYO>:'!^BY1;2$_E!5SA]"K5#FCF<F4/Y
M59#?>I01$8<SOAW21W\8OKU\[%;^L+R\?6GZ(D<Z<O!Y$,/Q&>II O\S9$$P
MB\.VK/KB]F>I\(A-X&1.6_+4V9E&3_IM/$V#'*40IU@\F6)Q%D2S7:D\5['M
M%(>P:1QPJL&(1N115=A @V'@IC7-"ZNTN]%(.>J"&(MP/^<8UL2\#VG 5%$T
M:)O%(U$@6DEW@--W@J:N@(GUIE*/ F"6.-!@SJ7<O!<=;U+3 ;,". P,WH*Y
MXMJ=54J)^,&0]CE5EEQ2*($:YDFV!'5YKJR4Z<=-GT2=?_MGK(/6:+H6YP8?
M'"3Y<HGVYT+7<O%>!\<@LA1JJ?D&DQ>4%GW2^+]0VC-3M]4^;L2/ZY?#_O?2
M]: O=MM<?QS<I,.;9-?W?JUE3R4&+#L+HC!AR31&MN<L"2>XC]F'1H-D _99
MEF4ECC]PXROW:J%EP<%TB:_Q!,MS?*/1S=*876,4+CF#T#A+J4S3& R>!EDZ
MP: D.;OAA<1!DEI/GH"MI]@^HXI)!SW]I=;\5TXD?P'2GW!@]E0TB3)\)G'.
MP%_3C-T*?8\?T5]G(9@L85D<PM,0X<!B=*^;8;68;O4NZ]$30\"=YN '].4(
M4T;V/\/7V;>;1C3-G!I56_9'@HVP#6RH_%K#4!1N D$CH%KJZL&U"8SH[F$_
M=Z#J2IPD49R]QWO*]OZQZ(Y@( Y0K/N3%8KA\UC1O[YS4VBY<77H3K9T=G4*
M_6EF#Z1.KSM1[%EY, EU9ZO=V;>SSAA%+06F;26=LP;3$\DPS89Z]*O:3[X;
MQI?!V#R[LU_OHD/'X*;R["O!OFXRV/4FX"AK-ZCNMK?=2KUL=,#0J4H7O;TI
M==_@[QQ 7N92R.4.M&YV<7$D:RK$_[ARN=<=<CX=/J+)R,_ I LBK#_&"1S(
M-OUT\;2QN[]NW"!LK9;SI@7AP*Y!#_E13'*X[BEU?%.6RNN)I_LT':/2PY1&
MBRFFW.1[](SCQR3!\2,/8LPC'2D3*TP89HEP$N^S,<@[ PN'(*?=S)C0%)M%
MD!('&<:B]OES?TN/!R\,4&9+]UK$,'> \N\.^J?]FY<K_\)AM]R_MOF,.8FZ
M?246V!J>3+(1T_Y5B+^Q:N->/\R514V[RQ4.:T+3 OR^4)BPVAM2T+^/NOPO
M4$L#!!0    ( *B295JE$_("FRX  ->B   9    >&PO=V]R:W-H965T<R]S
M:&5E=#,Q+GAM;,U]V9+;1I;HKR T=SJD"!9555JLMFQ%:+%[W-%N*:JD\7U-
M$DD2%@BPL52)_OI[ULR3(( JR3-SYZ'=*@+(Y>39M_SAMFX^MSOON^S+OJS:
M'Q_LNN[P_>/'[7KG]ZY=U@=?P9--W>Q=!W\VV\?MH?$NIX_VY>/+\_/GC_>N
MJ!Z\^H%^^]"\^J'NN[*H_(<F:_O]WC7'-[ZL;W]\</% ?[@JMKL.?WC\ZH>#
MV_IKWWTZ?&C@K\=AE+S8^ZHMZBIK_.;'!Z\OOG]S>8D?T!O_6?C;UOP[PZVL
MZOHS_O%+_N.#<UR1+_VZPR$<_-^-?^O+$D>"=?Q+!GT0YL0/[;]U])]I\["9
ME6O]V[K\K<B[W8\/7CS(<K]Q?=E=U;?_X65#SW"\=5VV]-_LEM]]>OD@6_=M
M5^_E8UC!OJCX_]T7 83YX,7YQ >7\@$!XC%/1*M\YSKWZH>FOLT:?!M&PW_0
M5NEK6%Q1X:E<=PT\+>"[[M4;UQ9M5F^R#XUO?=4Y@M7##W59K O?/OKA<0>S
MX+N/US+B&Q[Q<F+$B\OLU[KJ=FWV4Y7[/!W@,2POK/%2U_CF<G;$O[MJF3VY
M6&27YY?/9L9[$O;\A,9[\C5['MLH#_-T?!BDE^_;@UO['Q\<<*#FQC]X]9=_
MNWA^_G)FD4_#(I_.C7[_1<X/\W'G ?/7]?[@JF-1;;-U7;5PN+GK?)YMBLI5
MZ\*560L3>*"VKLU<X[,#3PJO%%7VJ2KP7]?X2IL]_,N_O;B\/'_YZ9K^<?'R
M49;79>D:^++*]>L#_#]]C),W.<SB ;.[7;;UE6]<61[QB3_@P/A*7W6XND-3
MP'H.)<P#WW:P^$_78<:_O7[](<R)<^'SIL>7\:_&;_N2P$1PPX=O7>7RPE79
MM5_W3=$!1F>O<R"CHNT:U]6R9IG'O(2__O1EO7/5%D:I]_NB)3ZD2[G^Z6U8
M";!&&H%WS00$\]\)Z&7VOF_@2;N&GX_>-?#)'IZL87X8XF>_:GI@E-D%?(,#
M>K?>\7NX.E_E]!H0![WU1%_#I6S@0.I;!"B^?S+1(KO=%3#8Z1A,8XL,4 ^X
MHV_P$+LZ<RT-*YL'*#6P 3NB &.AK\@C'&SXR/R6 >3Z%I?9%OL"4 A9>"Z
M 7#>%'7?3BP<%G:Z\J=WK'QLS.FE/QU9^M,[EP[3)<!F@J(UX=GFV>I(2W*'
M _!8MRH]'VH.N ?#\0;I$ UFX$DM,Y!#F?_B]D ?=DW/=4TT28O;I@DJ@$V9
M'7Q3U(0O./P 8,\#_NONZ[X!*OT7O-3!/@"?IB?0ER:&7F:_^6SG;G#SZ](!
M 6T*V/[:-QUH"UD!:@!\C30![&4?"/YN!@73PTNHD>A*%",/AE<N9YCPL\"$
MG]V/"<=%37#A;QDG^WBO[0)'+/O<"TZ,O #COO. *TTGG O.$/ (>,#QK+ZM
M8-RV7[4%,,(&>!L=2UYG5=WQZ8!@R&[@$:%B 4P?@$C3GOX*1]T1@UQFK\N2
M?Q;9HEQ<.&KCJM:MF1G3+"OOJ\R70"P5;570/0'(W)$]#T?V?!;40".@B56"
M$NLC+Z6</+AO'XV.#\0&2S]D/"(%HAX5/E-YQ+ "Z+6M%U"5 .*B9+$#K^'9
MV>,B[J&SDD@%G ^SPN..1O8JK$  X7EE?K,!Q5<?KUQ)(I@U?42V97;E;WS5
M"\KX+Z#GMW=/QSPO=P4(\&1.0(F/!C8N_QV45\9/@ CHR/C=IJF!9G< JD-3
M@YSCZ0!S^GVO\V4U<5!$J\;O4/^_P0W!WSY[6-9M^PB9NLM:EK:>WJPK)'\
M7[N#$0'U<^!3R+4NOGN9^7_U10= ?U\19#L'2 P45!;P>Q[DM4-!3H<-)@^+
M\84P)#.^7>O,0AN/<( =$X."0X"U=L6Z1T0YF89EUKK>5L4?#((3/IA2>_@2
M@8Y<H:^(U&!3%N-(81"44L+%N:(*AO.4]=I^![,'$724F;R<K1(T;+)O1+^3
M#PE["1ZPW6IL8 1>Q>LXTK'#!F] %K"<'OE 4->P$D%<,"]\AY+&C5-1[JM:
MV0RL<)/2L-)4X\_VWK5]HU@^O81O("YDCYLA\XA3XE%F6Q"#LGI :UF6<'M:
M.6Q3$(IE/TZFZ@"\<:JVW34CSH,'\7_.E\_ FBQ+!.JM:R=FS1X.]2M2$RY
M$P@C72S/=:27PQ4]&7O]4E]_-,?NOPOL_KM9!OVI]83J;5>@.M&.L?C9$<;-
MN.&P:(4!"1,/&Y?1JI(@=I.A@]8*P!]X#(P*)GOEMGP(@&I[]]F;P<EN:MM^
M?V#Z(H[A&,=(D]NS9.7?"7</==--\(IQHZ[*4SL0Q#^H :!BPM$ >I!$[W9U
MOR7*;^>6ARM 3PAIX'%CPFY;$/6@*7RNZMO2YUN"H^IG*'&Z=H&^&%1-63 @
M<([P$:QF0TIRIW+"+((8G5W5(ON]S[=F<X,%^AM7]LRF*V0\=;6M<=\K5,5(
M!\(M,&\,.X5703B!75@@&T"9""(829NT*E:(T'Q@3G=R9+>HYI2%1Z6*3LFU
MP)11@2).@?\I]IZEBNX=H,/\EO598B>H+*)5"6B"2S8;7=4]HP1H>PV=(VZ3
M-8<);AB0!A4^=-RAZ ;CPT5(\W9:@,4:(?W3[,GW>/"W(.^LW8ZK92V^[6$O
M**!+Y*6)-7Z \7<(=+#R!::DT[JBX6W@B\A]="=K(A["\A4J'J@P  JOD+<C
MY[):Y@(7MNE1K-\P/("I ],N"/P1-*!XP*FB"$*M!R8X(&@7 !G2AEARPYP1
M*9@WDMKC0=]%[P$*=E@Y+*-O9".HV&Y) X&UM1L16/ WS$;.4T2C>E466R?K
M#=HU4F^1!YV#<(U.Q+P>X HO(\3Q[)+OPL*!O01@$03;0B:$K>?]&I$ EEVI
MTP24AQQ)$CT&M$@\R[SN5QU"4[7Z!<Q6HBN5$8O$.2\2-!=?W.!&>(J;HJ4%
M;\A8)26OQJT @_(D/9$'U,UQ<0).T8X#'P' L]P"6ES53<,>#93!>%QMU\!F
MV(J 53; 4& !*3(!*:\_GS&O0MX'2IH"V6"UWZ_JO(C<E#F'JH6,.H3@L+RB
M(1Z.O[8M8\Z0#%AT=NZ+IT/6L0* >;!<G13Q?9D+-^?*XH^P! 09Z]+T%@ E
M+_ UT/K$EL:?#[4<M)PKZ9/&&<58LR;C[1J4!+#&UXZW$ND;OE1N,R#VX6&A
M&IV[$E0QT,1!GK/S#M GN,BNH[-NF@Q$<@(EKP'*)#C9ZPWZ^S*;41!>! 7A
MQ:R"\-:UNS&EX.ZO,OI/T(QVQ78'G).M!M#U0 "?(4@ ,@1Z63W(CFV!FO@>
MF4,PZ[I=XWVV9\<X'#]02SNG__PU;.^O\P9J$/:@2P)%D)P8V^\W#)/]G!#3
M9O2=CU88J:*2FKN!H-< T$5T%$3.D3T$MO_(/#JX(_Z^8,KVJ41#++54IF^C
M5&OJ+\2V<7Y8O&$'.?R/M7SXB8[/'-$R>P>B_L9U;,/%[?U&- !G//J45#G4
M?\3&S)JB_9P8?V3.HTTZPH5("Y$MJQ>Y32<8<:"_OGZ;?:P/Q3I[<?%,W79Q
M]0R>_P#-"U:@?KN'X8-'ZD(-FBGI!R#\0&T?W25J9LA-&G&YGEH\()5\P1I1
MQ3P,,=R%,SMFP=""J9!2S+&X@"VLU+)[ 4VHZ*;*?0L,"T\5P3EQ%C#0#O5-
MU5I88I*N1,8; 7/P_2A*J]L@+E(-1FNB@QF&O% M\(12!!F4KYD9R?Y65@H#
M]1T Z \B'2,J]G7NRZABLZ^U1N&^=\UG &^8"?>#40-XB["LG;-)U9D5S5G$
MUM]8605EMVY9?=B,OK?R:X>D8 @[*&!M5#EF70+!D036!J$U[+P$30"WH0HQ
M>83(]O$Y*T-B'NB/*J8W/6I?"_2GIP;ZID3%(-4]HY^.J?-&F4&,$?'S1>;[
MIEYD;Y Q /\_ '6B_\4W).-P/:D5<.I>6&:_J+^4UD/@>^</XB>7$^V.!SI"
ME]_02<$TGDU\=^.*DA@:J)'"]!;1!XMGC:@=5"*4/&6)( (H-%L,,2CJ"%T6
MCWB;#@D30 &2>L_ HD!&H<\1#.^!%508R\ZN@""S*]S!:_@-N=S#M^^OKEX_
MDH_@*UPNA<U@NOBA2!/8*WW]\/K]SU>/EB.85B1P2LY-3L=_Z4CO4?.*]HP[
M(\PG34BA=%QF;_F'";Q>FZ<@C\G6Q6%8OT+FC )?+>6!B.)H1EVR=YW>)'8,
M7*OO^+ 29E)TO?'0E6[]6?2PM4>N$-3+$6%(-IG+T-.*UH&H0\%> J,=E*E6
M-3O5EE#X L2+*H=?&I636U]O&W?8D4$;+;(](-56&:J!B^6Z2.Q$Y(*H,.NZ
M+V<8Y\*82BNP4W$0=/AW$VPEZ'T+H67X1WOK#A+$.+#:O 7%28:/XA:7?3(>
M*=]#PB-J!"++"U;\;V/P@PX3'?=M/[$CELJ-HRV!^8JHA :R$?:G:&95 44S
M5=2G5('H?P_F>A0I^1Q3_VC8,4;LFY:]F;(*(^RBFAV/:5/6I*J<$;SD&]CT
MK6MRHD'R6Y.ON-YL4+*3(5\C42*LAJQ6]\GG>?=VT_7G-0 @'(V5FG@.%O_"
M6<RHT!?G,0?F?%;[_:!6*\TC3.0?Y),=S7^9'6W<H3@SQ32G$K<P<FL0.>2O
MCUP+T=*/\@^DGJ![L$W)<#XDBT@GF=9+6!N!PS6N,?D(4- 1?8FW1(W#F8F(
M M5SX9FC.?82LA*HVV"MP,QY"Q+9GR$:!E9HGO(DMZ!![E@1D0&5/RZ$/XK0
M!M#4:&%>[^H>< VQCS]HO3X4O7&1.B*! P'80>?H1>RZLJWE5='51:EA/7O-
MXT=G;@FZ=JFZF]!)=)O,VKP7)JOK8A:C?U$ORRC^WO-;E..@ L$A;>LZ;X/K
M1B,HY%X.S*FL;SEA8%T#_\430E>>N#(0+8F7+27HS;DJF\$$"0X&6T-BYTZ4
M$/VXKPI%[,1C8SQ,D=&1X)2QPYO!*15=5>;C"=^]8H+106'D/6X8D;VFU!5R
MM+%' +D^<"Y.?D#_+W"WIOB#SAHH7_PB:CJQ4RG9AB"2."(P](E9+!ZTH,TH
M4B]T.;(!$9[J_2N+#<#PN!9&D2,ZUN0$S0X@7LR;Z,]1G?=?O2-+CH0ERM2-
M@'1\XZ"% %4BN=QZ<3X#@@")@!J#N !P1*]1BE*K^D9/MT&L K%#W((('X3#
M;66 0KH &4,CAX>8A%^!F$*Y-2LE+B--7<[3173_P?'@;L[0UYP+BQVEM#\U
M(J)'A\K,Z9.Z$4-["P+A@'J3N(?'W=OT%Q(;P)'._\0W3K%#,G&1RL1L)\<?
MQVQP1F-'KXMFW>_1![CV\;0EQ@&XZ-5HBSY3T,Z3CRQ[!'UU2[BAJ"W(OB ]
M4H,749?\/FNM!S.'-;>)G4^,(X0,2B98<KMM46MA0GD9\X8X1XJT>E");LEC
MS4%VP'\1=AQY0'\HZOU.A,^1CX[>(*\'JJ4P4!?=KKT9!*!=@Y;9Z3"XT+X-
MXB]Z3^+IOF23) ;10'=:2X*) GST0Y9/>U@/@.ZS)_T!V R"$DZF%?47S0G2
M.V )*X^K9X%7T2_HK5&.E\<0RP9#W)7UB%.$-TUD(/2QPI.Y-@8=46?!4"6S
MSP!WS4WH.$U.D'ID9S 1>E"C9V'@@EQFOYJPMP!W9+6)CT52=Z)WA0W0 WL=
M3M:ZS/Y9VS%'27CG6DY] G4'<(&$@!!:(_%V]N'<(]F#2#1J*FF28<C8G65V
M,47Z8C:Y^=7?0""S>D/.U@&W&.5U?V; +#P&>YIWTFKJA5'F!A%$](Z.1P:1
MBTT$%^/,HPO1H.,R+JE@HZ3M5[^3$E<CDH%9]$?TXA*;'L2(8+YMV#2@G'>D
M%V%2)II35?8>N- *UOED/,,7)2 >-KO04'$H-O0+<>2L7@-#8+Z<\%511=EC
M0MQUE / %ONU&-(11BM/W(_<<>J-13W+N/ '=(:IN@9%R7M7N?+X!Y.PT9TT
M,W&]*_S&L-<<E".R%3 K LD<5D'V-IB>G)@EGA!Q;0!?\!RA(K4Y9^ZZ!6Y<
MK %I_'I7U?#W$3F<^F!.O(WA9$:#>B>L(4:SDV-%5-#5I0 CK$"3%_7+7--E
M0:JR_6JFDD1(,NEV19,/<F^?J3DG82@Z5["F,&MG]&"#2$A1/_6PXQ)IB"TH
MZ)UUT::)!9BI2%(9?;,+U.(F$!S'LDS-)(!G#]/O4"=L3$P!R<8D76?)GT\>
MD3=U0*0FUHUPLV'NX*JGL1D4:2!()6;\2%PII_-HZFWTP05OE$19I>!@5Z 2
M5M75&;DY*"L1J-21YNV_(&ZB$:*XJ=XYMN$KMQ>G\9 7-5Y9C>2Q9%BW@#[6
M,^2O:AL)LRN:,5%](RF_B1:=SC14)U7#L1HC.O B#(-HUY-(Q+J1YZJ[!3&*
M)(.1<*MO!HDV1+XT 'GGLE/[$;B/KDDMP+ *7?:(4']M>+N:Z:=B(DFC'*";
M*;^@S-CO*4IW_N1E]O8^>)1=)V=,IWN)<+L\%UG_TRA"C7SV%#^[N)3//D9L
M&WOY";W\3%[^YQ@N3RY-YYC3/6+ET\5\S=*'41MF5.?XEH&RB9^+-CE(-$0Q
M+ SJ""KL!ALF;*QO1 F <4]5%(FQUM:;[A:)9P3B%P3Q)W)0/_<-4*GF(6V*
M+^1)GS[@I_+=/T ?H4QI9,T@2 4=1[Y#39OED='_D?@H_0'57AR*O.("B0J4
MD;)4&R>&*$87Q<M1>/S<(_AR!;N?RM@2/K^O4=D.^8*IAURYU''@@@#Y!#N9
M591CA<C%?&D'@7%<(;[/A]EKQ@^0-/X04]&#^_96=07<#,?8X\,"A$M-Q@,Z
MW3&)2XXBZ"[ZD22)\F>4>'UD_;JA@!U7U'1-75J#U"56"W-:,D'47D:N37JI
M"<)L>$$Q,2V6 :WZHF1MC19I>""AB?R*CD/@/?Q7R+UOU9\J!0-J0&)<0 H!
MRB-G2:_'*>K&P_>EYVG8#4VKH@)A$4QI+L8=*Y(R!-;^!@]IT\$41@V*T+[>
MG"%L-47JZOVG6,](X&5+GP>+Z1/J8=4YJ$B0E<<0 X*Q9(P"]99"HC8A\R)1
M9^6Y*/$J?4^FI1H.@3(:'OS"P1WYU,@3[D@,&\?!R?H6V:'L6QI Y\W!PEHS
MBS75!)2Y2FF+8:Z"PJ44 N+( !IF'W>)AF1YA4:-75,6S+*,+T-0.W(P_BE"
M+CEV8FY<[L+Y;I9U[8&LZIRK"PM4Q,& PTQJ3ZQ_@RC5IAK'P74P8J@,E92[
M8,JS'@((@Z4+:X!GY3?!O6T6%+S 3((MR>:&M1W,<N91T4V-@?,<34:;L$$R
M3K*2CR%:1Z_[!LPPL1MY&#MYQ(IQ]!(4'76AR.8&V"-?C*"+T20C_-/(+H@L
M+%#OU-?'8]?-@C?LY+4UF-NU9#!QXG/4#Q=?F7-*IM!>8@^H!C CT6@RVZ*>
MF*8NCE-5;X6ADAXY-?J0/KG? @7 0S8(*24#:"$ AJF9)X>00G[R6.UA1K.#
M'/+Q'+CTA9.OY$28&," $1TJC*/R%\M:D%>*B(CQX2%*-$4;RL3LZPC4*O=?
MR'5&0&6\/AUX[$RM^[$+Y12)2;+R(8F0\W#(YBURK%)@,&[!*@<5V'L2N0.R
M"IYGD@HVBJ,"&,UMM),#G;G@S%HPK7)"!RM5P8TE=/B;FELCIQ;AO2#= %AI
M"T*(!&VLPJ/S17ZM%;.I'^>$%_(N4YL>4!QX$KG1R7VZN==(T07*+B>"]Q^^
MJ:-B8$7PX2!U:0?454(=1E[@)LB_41O!&F:1NH<$/(4F#L1<7:%9XA!<_&J9
M*RP=#)E!DJZAEHBHIU[\5C6+8:X@:@DAX>%N(]ZL9U9!C?6P%_,EK%>AL"%D
MA(]JJU\]BA:0#KS^_4$K,S8:#V;-$I/ @;"+-L1[27EK;@IT6Z(*&NP$)GE!
M*&;G5JBFA0^W*F4%-3PSIU0E!0X%4#V9EG"0TF8X:R;FR-"L:V(\L?PZ]^A/
M87^%9@$:MW.K+C'"QL=F'JN]1B-Q[0[$<BCR0JY0LNM1[>? L:KMP"""BR0D
M=L0\-571VE@4.Y%N#T(LA'?C\LAQHE,7:=X$P4#4$6;,!:4@(JM#7Q+"MMXR
MD^,$^(ZK0J30*$@O8$M<8!2R-P0;B"4ION#O",'!ZJ*.'TR2F"K',\IHMH\
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
M[P:_A/XAR6@Q9)OR0?+]#!JUB6C0P.XX\!ZVCV+&;EJ;77,'^"+U$")**5J
M@++.J---**U0#\&$4A*>-"Y^AC#2P:159&UUT[/5\2P<OS@R.ILK1?9EK!<0
MQ]U<0#IV[+R8;]EY!>?JFO7NI/R41/YH;/K/#)A]K"6O2#/^T)RQ&BIE<-"K
MQE'43 T:N^YPEN&(#_]MFM>F0DY=MJ)Z6 <.LZW4K1B3NYG6-V (Q<*ED0\P
MYDK=&T*D!?;#V036N4@PB)8/::@^:%-Y\%8&6-%C8Y#/HD'LRW8QWV+M>J(W
M'U<ACZ+!GQDPH\?9>_$C_.:92LGJH2>2.L<O(Q QY].#)*B/WDO&(E57UQL
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
MW]2 I?('3G!;-Y]I>:_^'U!+ P04    " "HDF5:]NQ#%/L"  !5!P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6R556U/VS 0_BM6D- F#9*F+4/0
M5J(,M$UCJH!MG]WDDE@X=K O;=FOW]D)H9/2:/N2^.6>YYZ[\]FSK39/M@!
MMBNELO.@0*PNPM F!93<GNH*%.UDVI0<:6KRT%8&>.I!I0SC*#H+2RY4L)CY
MM959S'2-4BA8&6;KLN3F90E2;^?!*'A=N!=Y@6XA7,PJGL,#X(]J96@6=BRI
M*$%9H14SD,V#J]'%<NKLO<%/ 5N[-V8NDK763V[R)9T'D1,$$A)T#)Q^&[@&
M*1T1R7AN.8/.I0/NCU_9;WWL%,N:6[C6\I=(L9@'YP%+(>.UQ'N]_0QM/%Y@
MHJ7U7[9M;*=DG-06==F"24$I5//GNS8/>X#SZ  @;@&QU]TX\BH_<>2+F=%;
M9IPUL;F!#]6C29Q0KB@/:&A7$ X72VZ%93IC*P,6%'*?JW>/?"W!OI^%2#Z<
M99BT?,N&+S[ -XK9G5986':C4DC_)@A)7*<P?E6XC <9OW)URL:C#RR.XND
MW[B+>.SYQO\3<5^@#<VDG\8URX6M> +SH')$9@/!XOAH=!9=#HB<="(G0^R+
M!VJ^M);@=*9 #A+15(;FE:&6-/CR@562*V1<I0R>:U%1KV!?(,.NCH_.XVA\
MR:YU6=4(YHW+,UN=X98;8(3A[HB?. *F-V0Y8JC9:,Q>@!O+;FNC!-9DZG"9
MV+FQ[<.-/6[2XKX!=56A9<I$2;%MP/GNQ=&1I$2['-06LEHR*3+:,HQDEVY9
M.BIVTP4@E$4N):3455BT_03F@"@O9Z!XTZYXTW\N'B^U0?&[*YZ@ Z=R0=W%
M. 6#MJ]@P_1=P=IH&,\-M$ESF3<@O3M;B*HWTMBE/X[:]-_LA$6A<DIB4B@M
M=2[ZJS;Q58M;V*/A*3#%RZ$23UOC[UJ=)'2^ ($EM*_X@0K'^S[Z2A'N7744
M>^XO=$NDM<+FUNM6NS?CJKDJW\R;!^>.FYP."!V:C*#1Z4=*NVDN\6:"NO(7
MYUHC)=H/"WKWP#@#VL^TQM>)<]"]I(L_4$L#!!0    ( *B295JJR^LBZ@@
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
M<9.J=CNOLI;[^R-L;4NA.(SX\+-0.8% P!.<9'ZOOWRMV+WK>;-:+I/'G<U
MX]6/EQTXLH<RS\JV_,_KF_;]][AP#U)?BE ;C<"E&B2%8^-:IX9'O4HI-"/H
M"+X^1]:K;%2T/(R@=41$@/-&MU-(('A@TP(:.C&LSA)L\%*:[>%AFPT$+5P
M6.ZDY#@M(HCK@PZ*:Q+N<3, I#4)_2X[D!:*8<>,".9:"[N($$=2<)/3AL3%
M)D-U,'F.I \E9XFC6B"4/=,[QW&?!?;@!N_;3K3:KVBVIL_ )2XE;"VD4;GC
MK%'EWJ+B7F0N8>\8TPS&?KZ$0QGE1"*ELZSI'EG@SCA^^%\NM_[:N?3+:!@G
M;)LH:S!;T/)F#62;K')87VVG8R"-58FFENA'>^FSK#(928$7VN/FQ@>K[RI.
M?P$YP/)V=O8=;F:]:7B=Z+HL#<_S0]^FVMPG$F&=.]^//!]NXX,*6.?UASO3
MGB^AJOT2J@[^$MIZUQ90Y(;<&FOO:)'E9?PW>L$<.2GG)LZ)P5XL*J=&4C1=
M)<#6G=GZU7>_-E\K\FSY2-E\UZR_]QV(5$$>390[+^TV;58$ZYZ\>=F&7]VT
MZ8W!N\KK9R_5H$VE(,=/!O*-LFC[UL_M:%=-J]H8O:N\6?_2IWML:<XI+]R/
M-H,87>PU]*9!>[RP1=9^^[@]_\=2J@-2J28_>2WR&=MT ?8"I!^R(6OP6O-N
M CD\",!VY#,@WL.HNF54?3"CKF^,:FJM+\,(_BWSC%3WNZ#:^IX7#=OH<O]4
MGPLU/T7IREY_V=N_7>__@IGJNT8GV+EI)G4N#E!X_?'B8YUU 14^\E[5!4:-
M4*KM5XH (9[)*M5J/K/:@,B<0QBCOJ>0$H<(^$% WD=Y"@@BOP6RB[F-9L]I
M<1D5\9BP$^VDXR=<XX?ZY%V<K&RT0[-PFZ5M5OO -')NCN%FL^I^'$<.4%Y9
M7R*WM>T5_$5]\]QUK^_O/T3Y+,8)/S%3#*4G/F)K7M^)UX4R6U;WT+=9"9^N
M7N<&#I7;#FB?9EFY+M@)VO^8</X?4$L#!!0    ( *B295JS8R(ZA@,  .T*
M   9    >&PO=V]R:W-H965T<R]S:&5E=#,T+GAM;-56;6_;-A#^*P<5*!K
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
MVV[;, S]%<(%BA8(ZGN2MHF!INNP#N@6M+L\*S$3"[4E5Y*3].]'R8Z7#6V
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
MIYQ4=7O;(5Q8B\["'Y\D6?;/=>0(WWM%Y0'K<L;B3V Q#N^U<HV%UZK"ZD>
MB(@M[/@#NTM^$O$OJ<X@82'PF*<G\))%;3+A);^K]C&1,X1X',(7R;D=9(F;
M@*K HKG#8/O\&5O%+T\0% M!<0I]>T-%5XU$3^^@_4Y6/DGV--SS9SF/DY?P
M?T<Z]Y%*=#KZX_G/?OZW'!L"KK1U<#7=6S0@:X-()4S72JJ*BKB3OA9MTPX6
MDE2$L2B %T684NCK^]:Z5M7@L&R4[G3]%<1J%>8)!Q$G82$$?#*R0E"R1PN,
MATQP8''(D@(^:/6BU/V #J'4=ZBDS\I6H<@38"(L&%N8YH(RQBO(>!ZF+(>+
MLAS[D;AA!;+7QK7?)IZ_Z/T]82POPB+.@64\C/GJ46$),?,4>)Z2BOP'87F8
MYP5].<^>DL7#(DG\$&?QPBXE.3Q9@<BR4&0,/E!/3S@+.?GPE-%A9X]=T>BH
M>Y"V>NJ1EK*-RLV-9%E=VO#%W'V^N\\]_+TT=:LL=+BCT/@L2P,P<U^<#:>'
MJ1?=:D<'.4T;>DK0> ?:WVGM'@R?8'F<MO\!4$L#!!0    ( *B295J<KVK3
MTP(   <'   9    >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;)55:V_:,!3]
M*U8J5:T4-8D)A+: !'1/K1HJW?;9)!?(ZMBI[12V7[]K!U***&A?$E_[GN-S
M_3CNK:1ZTDL 0]8%%[KO+8TI;X) ITLHF+Z2)0@<F4M5,(.A6@2Z5, R!RIX
M0,.P$Q0L%]Z@Y_HF:M"3E>&Y@(DBNBH*IOZ,@,M5WXN\;<=#OE@:VQ$,>B5;
MP!3,CW*B, H:EBPO0.A<"J)@WO>&T<THMODNX6<.*[W3)K:2F91/-OB2];W0
M"@(.J;$,#'\O, ;.+1'*>-YP>LV4%KC;WK)_=+5C+3.F82SYKSPSR[[7]4@&
M<U9Q\R!7GV%33]ORI9)K]R6K.I?BC&FEC2PV8(R+7-1_MMZLPPZ@&[X#H!L
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
M?$$!E'V;TD^T:&UKL!6:&@T[+*FS0VD$:+\00C],S %CK[CY E!+ P04
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
MYZ(&?*$):"BY+I/*0\R2+%PF3K\(X[2D-2<O\1SN3M@]_^Z!"7=1P"),BIC
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
MBE:3BOIBSOO'RS@/)>]U,2^O5HO_=%^^T7.]@Q&MWZ":@VH"U5Q4\U#-1[4
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
M5 NH%E&M0+62TII9=]CXG\VN7%2B&_Q1+4<U@6H2U12J:50SJ&91S:&:1[6
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
M&52SJ.90S:-:0+6(:@6JE>,3?8+1F;,ZQH="P3A=*#@L7U\]N2\M=@XSM%.
M:@+5)*HI5-.H9E#-HII#-8]J =4BJA6H5E):,_4.W8/QE=V#,=H]0+4<U02J
M2513J*91S:":136':A[5 JI%5"M0K:2T1L9-#MV#R5>;AI"6NZ8?JN6H)E!-
MHII"-8UJ!M4LJCE4\Z@64"VB6H%JY>2X>] ?#\^L5R>'\L$D73[XO^5/)Q,+
M+1N@6HYJ M4DJBE4TZAF4,VBFD,UCVH!U2*J%:A64EHSV;)#LET8=Y ^3VV"
M%A)0+4<U@6H2U12J:50SJ&91S:&:1[6 :A'5"E0K*:V9<(?BPB1=7$#.E4Q?
MHW,.H@4&5!.H)E%-H9I&-8-J%M4<JGE4"Z@64:U M7)R7& 8]V]F9YI9DT.%
M8?<P&7#KU?X3U'TY_N+);&FJ<XZ16HYJ M4DJBE4TZAF4,VBFD,UCVH!U2*J
M%:A6OFCU')L-LS,'?$P.E89)NM+ G:.;OE#GD$.;#:@F4$VBFD(UC6H&U2RJ
M.53SJ!90+:):@6KEB]8(N<F9L\(GA\+")#WCH.M!NFFN<Y*A_054$Z@F44VA
MFD8U@VH6U1RJ>50+J!91K4"U<G(\]F#2'\YF9[+L4$R83*[;S39!ZP>HEJ.:
M0#6):@K5-*H95+.HYE#-HUI M8AJ!:J5E-;,N$-/89+N*5QQDFY:[IQ^:%\!
MU02J2513J*91S:":136':A[5 JI%5"M0K9P<ST#(AL-S[]P./81)<@_P:X_2
M32N=$PQM(Z":0#6):@K5-*H95+.HYE#-HUI M8AJ!:J5+UKC,,K^<#HX'6'3
M0\U@FJX9O.8PW331-;]0+4<U@6H2U12J:50SJ&91S:&:1[6 :A'5"E0KI\=]
M@C=9_]R>C>FA4#!-%PJN.DTW;7<.-K1V@&H"U22J*533J&90S:*:0S6/:@'5
M(JH5J%9.3\PXZ&>#,TVI:78(MO24@]1YNNF7=LXMM$R :@+5)*HI5-.H9E#-
MHII#-8]J =4BJA6H5DZ/IQL,!Z/LS#VQZ:$E,$VW!/YO^=,UA^FF]<[1AO8#
M4$V@FD0UA6H:U0RJ651SJ.91+:!:1+4"U4I*:R;@H4:P>WC5?HZ7UU,91VHY
MJ@E4DZBF4$VCFD$UBVH.U3RJ!52+J%:@6DEIS8P[= RF%\8F_/'3B=)RY_1#
M2P6H)E!-HII"-8UJ!M4LJCE4\Z@64"VB6H%JY?2X5##MWYR[YW9H%4S3K8+G
MM>NK3])-:YV3#"T5H)I -8EJ"M4TJAE4LZCF4,VC6D"UB&H%JI64UDR\0_=@
M>F7W8(IV#U M1S6!:A+5%*II5#.H9E'-H9I'M8!J$=4*5"LIK9EQA^[!],*,
MA"O6JFCW -5R5!.H)E%-H9I&-8-J%M4<JGE4"Z@64:U M7)ZHGMP<W-VL7HH
M'TS3Y8/GQ>H_-O/WB]YJ?G]FB8I6#U M1S6!:A+5%*II5#.H9E'-H9I'M8!J
M$=4*5"LIK9%SLT-#879SW1)UAM834"U'-8%J$M44JFE4,ZAF4<VAFD>U@&H1
MU0I4*RFMF7&'%L,LW6*X8HF:ECNG']IA0#6!:A+5%*II5#.H9E'-H9I'M8!J
M$=4*5"MGQQV&LY^FSK)#J*4;#,\+U+A>O;E=WS\LMOMCVCXM5O/5]N12-:UU
M#C*TU(!J M4DJBE4TZAF4,VBFD,UCVH!U2*J%:A64EHS\0[=A]G@RJ4JVFY
MM1S5!*I)5%.HIE'-H)I%-8=J'M4"JD54*U"MI+1FQAW:#;N'7VNIFI0[IQ^I
MY:@F4$VBFD(UC6H&U2RJ.53SJ!90+:):@6KEB]9:JIY;JQ[Z#+-TG^&GIX>'
MN]][_[U\/'. >/KUG;,+;2V@FD UB6H*U32J&52SJ.90S:-:0+6(:@6JE936
MS+A#NV$V3J].TY/Y9FB; =5R5!.H)E%-H9I&-8-J%M4<JGE4"Z@64:U M9+2
MF@EW:#/,DCN)F0FEZ6MTSD&T\8!J M4DJBE4TZAF4,VBFGO11O7UT>ZYAP72
M2\"A5094BZA6H%KYHC66G_W1Y,PQO+-#1V%V83Y"A]&C::IS0*&E!%03J"91
M3:&:1C6#:A;5'*IY5 NH%E&M0+5R=J*4,)Z<NXUVZ"3,TIT$;O1H^D*=0PXM
M+J":0#6):@K5-*H95+.HYE#-HUI M8AJ!:J5L^.9"</3"=>_.=01]H]3&==U
M].@%KVN4L5S.<H+E),LIEM,L9UC.LIQC.<]R@>4BRQ4L5U9<8Q4ZS(:3<^'6
MKX5;_[H=;!6 I1E:.& YP7*2Y13+:98S+&=9SK&<9[G <I'E"I8K,:X5>EDM
M]-)%A2N&DUZ@N\<A6EM@.<%RDN44RVF6,RQG6<ZQG&>YP'*1Y0J6*RNN.69^
M>NZMW:"6<NG!#*\<5GJ!Z9YH:$F!Y03+2993+*=9SK"<93G'<I[E LM%EBM8
MKJRXQHBLT2 [%VG#6J0-DY'VFN&E%XSN>49R.<L)EI,LIUA.LYQA.<MRCN4\
MRP66BRQ7L%Q9<<V1?^?S;%3+LW0+X:IAIA?P[D&'=A183K"<9#G%<IKE#,M9
MEG,LYUDNL%QDN8+ERHJK!]WH[">HXUK,I<<LI$:;7GAM]Q1#>P@L)UA.LIQB
M.<URAN4LRSF6\RP76"ZR7,%R9<754VP\&9_9LMN_F=1R+%TW:)1&KQEZ>N%"
MW4,/+1VPG& YR7**Y33+&9:S+.=8SK-<8+G(<@7+E1C7"L=I+1RGU^XD07L,
M+)>SG& YR7**Y33+&9:S+.=8SK-<8+G(<@7+E1C7"KU9+?32_8<K#D>Z0'>/
M0[3RP'*"Y23+*9;3+&=8SK*<8SG/<H'E(LL5+%=67*/D-3IW5E*_7ZM ]-,5
MB/;"]]434R_ G4,.Y7*6$RPG64ZQG&8YPW*6Y1S+>98++!=9KF"Y$N-:85BK
M3/2OK4STV<H$RN4L)UA.LIQB.<URAN4LRSF6\RP76"ZR7,%R)<:U0B^KA5ZZ
M,G'-0C=-=X]#MC*!<H+E),LIEM,L9UC.LIQC.<]R@>4BRQ4L5U9<H^@_.;_0
MK74F^NG.1'NA>V':Z@6N>[2QW0F4$RPG64ZQG&8YPW*6Y1S+>98++!=9KF"Y
M$N-:$5CK6.P>7[F\';*A1W(YRPF6DRRG6$ZSG&$YRW*.Y3S+!9:++%>P7(EQ
MK="K%3'ZZ2+&5<M;MH:!<CG+"9:3+*=83K.<83G+<H[E/,L%EHLL5[!<67'U
MY>W@[.*V5L/HIVL8[<7MJR>U7H"[1QS;T4 YP7*2Y13+:98S+&=9SK&<9[G
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
MY2PG6$ZRG&(YS7*&Y2S+.9;S+!=8+K)<P7(EQK52L=91F#YO$/[CQ:PIVT1
MN9SE!,M)EE,LIUG.L)QE.<=RGN4"RT66*UBNQ+A6Z-4Z"]-T9^&:DWS3=/<X
M9'L,*"=83K*<8CG-<H;E+,LYEO,L%U@N5EQS3LV).W=LD8'BFC$WJQ499NDB
MPY<5K_AM^;C=]TZWB]N/J_7=^L.Y#<!IL7.ZH5S.<H+E),LIEM,L9UC.LIQC
M.<]R@>4BRQ4L5V)<*P5KW8=9_\H5[HQM/:!<SG*"Y23+*9;3+&=8SK*<8SG/
M<H'E(LL5+%=B7"OTLEKHI=L1UZQPTW3W.&1+$R@G6$ZRG&(YS7*&Y2S+.9;S
M+!=8+E9<?84[F V/2A/H54N,:\5<K30Q2Y<FOJQP_[&9OU_T5O/[<^M:MC>!
M<CG+"9:3+*=83K.<83G+<H[E/,L%EHLL5[!<B7&M[*OU*W:/KUS7#MG0([F<
MY03+2993+*=9SK"<93G'<I[E LM%EBM8KL2X5NC5:A>S=.WBJG4M6[I N9SE
M!,M)EE,LIUG.L)QE.<=RGN4"R\6*:WQR.SI:U;*-"XIKA5RM<3%+-RZ^K&KC
M>O7F=GW_L-CNYT%\6JSFJS,'T:7%[MG&]C!03K"<9#G%<IKE#,M9EG,LYUDN
ML%QDN8+E2HQKI6"MKS&[=F3$C*UCH%S.<H+E),LIEM,L9UC.LIQC.<]R@>4B
MRQ4L5V)<*_1J=8Q9>F3$5>M;MJB!<CG+"9:3+*=83K.<83G+<H[E/,L%EHL5
MU^CB'NU+1J]98EPKY&KUBUFZ?A'>E:<#C*U6H%S.<H+E),LIEM,L9UC.LIQC
M.<]R@>4BRQ4L5V)<(^JRFT,%8_\XN8C=OV%[7)Z;X5J]'(H\ELM93K"<9#G%
M<IKE#,M9EG,LYUDNL%QDN8+E2HQK15Z_%GD79DW,'S]^WULMMKWU+\U!A\\G
MK'R^H??\M50PHIV,BAO5/T?*1C<WS;?:.7M9P7*2Y13+:98S+&=9SK&<9[G
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
M$S!<*S[M:%!_P+-!#;68U[4,2^US/8?@!+YV/*C//[>G7=X_,VK@V.]/J,#
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
M9!(L=T3@ERM=])/C+(;1 ?VQ3>@FGP[DTW\Y4< +%]KTZ)1,TG%RP'9L]/3
M]7S^7D=J #?8-&I%<M%QW=?K87:X"WRP+?!@?H%WA+ZE_Y'I+QC7^-TPKD@-
M)4H&9V-DDGW3[@=:M+;OW0F-7=0^5GC/ 6D,\'TIA-X-S +#S2G[#5!+ P04
M    " "HDF5:6E*"T8 "  #?!P  &0   'AL+W=O<FMS:&5E=',O<VAE970V
M,"YX;6RM56M/VS 4_2M6AB:0@+P#=&DD()JV:9,J'MMG-[EM+!P[L]V6_?O9
M3AJU)50%\27QM>\YU^=8ODY77#S)"D"AYYHR.78JI9J1Z\JB@AK+<]X TRLS
M+FJL="CFKFP$X-*":NH&GI>X-2;,R5([-Q%9RA>*$@83@>2BKK'X=P.4K\:.
M[ZPG[LB\4F;"S=(&S^$>U&,S$3IR>Y:2U, DX0P)F(V=:W^4QR;?)OPFL)(;
M8V243#E_,L'W<NQX9D- H5"& >O?$FZ!4D.DM_&WXW3ZD@:X.5ZS?[7:M98I
MEG#+Z1]2JFKL7#JHA!E>4'7'5]^@TV,W6' J[1>MVMQ$5RP64O&Z ^NX)JS]
MX^?.APV '[T""#I <"@@[ #AH8"H T36F5:*]2''"F>IX"LD3+9F,P-KID5K
M^8298[]70J\2C5/9@\ EH.NBX NF)+J# L@23RF@XQP4)E2>H#/T>)^CXZ,3
M=(0(0P\57TC,2IFZ2N_ \+A%5^VFK1:\4NT'9N<H]$]1X 7Q /SV<'@T ,\/
MAX?;<%?;UGL7]-X%EB]\JW=#QK14T3"5N=PCV> "QHZ^O1+$$ISL\R<_\;X,
MV?219/D'D6U9&/86AOO8.POQVD*QU\*6*K94IITMLSBZ\(+476YZ,Y 5!,GE
M=E:^=UOO%!WUHJ.]HG^"E",T$7Q);/?4S1L5 DJB$.52PN#%:BF3#5EG%]'5
MCO:!I.1J)RF/7AATYL=1W&=M:8I[3?'[#O(4,5!#@N*7YQ1>Q>&.HH$L/TYV
M)>W=VUM/T]WHIN;I^X7%G#")*,PTO7=^H:N)]CEI \4;VV"G7.EV;8>5?H%!
MF 2]/N-<K0/3L_LW/?L/4$L#!!0    ( *B295KU+D9A;P(  &,&   9
M>&PO=V]R:W-H965T<R]S:&5E=#8Q+GAM;*U5:V_3,!3]*U:8T"9!\VA:II%&
M6CO00)I4;0P^N\EM8\VQ@^VVX]]S;:<AG;(*)+XD?MQS<HX?)]E>JB== 1CR
M7'.A9T%E3',5AKJHH*9Z)!L0.+.6JJ8&NVH3ZD8!+1VHYF$21=.PIDP$>>;&
MEBK/Y-9P)F"IB-[6-56_YL#E?A;$P6'@GFTJ8P?"/&OH!A[ /#9+A;VP8RE9
M#4(S*8B"]2RXCJ\6$UOO"KXSV.M>FU@G*RF?;.=+.0LB*P@X%,8R4'SM8 &<
M6R*4\;/E#+I/6F"_?6#_[+RCEQ75L)#\!RM--0LN U+"FFZYN9?[6VC].(&%
MY-H]R;ZMC0)2;+61=0M&!343_DV?VW7H >+I*X"D!20O >DK@'$+&#NC7IFS
M=4,-S3,E]T39:F2S#;<V#HUNF+"[^& 4SC+$F?R;HB60ZZ*06V$TN8<"V(ZN
M.)#WQ,^I;DB3\QLPE'%]@;./#S?D_.R"G!$FR!WC''=%9Z%!498Z+%H!<R\@
M>45 G) [*4RER2=10GE,$**;SE)RL#1/3C)^I6)$QO$[DD3)9$#0XN_AZ0DY
MXVZ%QXYO_*\K/+16GBH=IK(W^DHWM(!9@%=6@]I!D+]]$T^CCT,^_Q/9D>NT
M<YV>8L\?Q0J/!)3]XS-DV+/$?C-LY.SR=#3-PEW?R$!1,DJ[HB.!DT[@Y*3
M):@"A,&D(G*-:>*VIZ=V2*QGO.S)B$;Q"ZVG:[S4L'=?:U ;%V.:. G^G'>C
M75)>NX!X,3['!/6!]X?&Q^\=51LF-.&P1LIH] %U*1]IOF-DXU)A)0UFC&M6
M^!< 90MP?BVE.73L![K_2OX;4$L#!!0    ( *B295JYA;6J! ,  *((   9
M    >&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;*V6:V^;,!2&_XK%JJF5UA)(
M@+1+D)ITTS:I4M3+^MF! U@%F]E.TOW['0.AN5!VT;XDV)SS\KSFV(?)1LAG
ME0%H\E+D7$VM3.ORRK95E$%!U84H@>.=1,B":AS*U%:E!!I7245NNX.!;Q>4
M<2N<5',+&4[$2N>,PT(2M2H**G_.(!>;J>58VXD[EF;:3-CAI*0IW(-^+!<2
M1W:K$K,"N&*"$PG)U+IVKN9C$U\%?&>P43O7Q#A9"O%L!E_CJ34P0)!#I(T"
MQ;\US"'/C1!B_&@TK?:1)G'W>JO^N?*.7I94P5SD3RS6V=0:6R2&A*YR?2<V
M7Z#QXQF]2.2J^B6;)G9@D6BEM"B:9"0H&*__Z4NS#CL)CO]&@MLDN(<)HS<2
MADW"L#):DU6V;JBFX42*#9$F&M7,1;4V53:Z8=R\Q7LM\2[#/!T^2!H#N8XB
ML>):D3N(@*WI,@=R3A92K%GUNK!:2"0A9IKD0BE0Y/0&-&6Y.L.XQ_L;<GIR
M1DX(X^0A$RM%>:PFMD8^\Q0[:EAF-8O[!HOCDEO!=:;()QY#O"]@H['6G;MU
M-W-[%;]1?D&&S@?B#ERO VC^Y^FC'IQAN]C#2F_XMXO=M5:UU*A;RFSN*U72
M"*86[EX%<@U6^/Z=XP\^=OG\3V)[KD>MZU&?>CB#E''.>$IF-*<\ZG1;2WB5
MA#EYUJ%_>3FQU[LFCF,<;^2U07MP7@OG]<+-5U("UZ0$R41,RKV2AY<23QN(
MFZ+OXJ[5_5TF/_ /P(^#+DT]=7'[+;??R_TDF89SD22*1!F5*4+2% ]MI8G.
MX-5'%[-_A'/N^(YS -T5%02#;NR@Q0YZL3\E":XH$0DIQ!JP&^ V8-5BXWG+
M<<'1#$\[*R3HX/$.F'L?_H]E/FZMC?NM\?@W-3X^JM]@=%CCQS&[^Z &LW>.
M^P+PW9LNB'5@3I7Z;&QGVT9[7?67@_D9-N"Z7[[*U-W[%DL*BXGDD*#DX")
M(EEWQ'J@15DUE:70V**JRPP_(D": +R?"*&W _. ]K,D_ 502P,$%     @
MJ))E6OY"36D: @  @P4  !D   !X;"]W;W)K<VAE971S+W-H965T-C,N>&UL
MK51=C],P$/PKECFA.PGJYJ.%*TDDKA4")$35WL&SFVP;ZQP[V&YS_'ML)XU:
M*5?U@9=XU]Z9G7&T3AJIGG4)8-!+Q85.<6E,/2-$YR545(]D#<*>;*6JJ+&I
MVA%=*Z"%!U6<A./QE%24"9PE?F^ILD3N#6<"E@KI?551]?<!N&Q2'.#CQHKM
M2N,V2);4= =K,$_U4MF,]"P%JT!H)@52L$WQYV VCUV]+_C%H-$G,7).-E(^
MN^1;D>*Q$P0<<N,8J%T., ?.'9&5\:?CQ'U+!SR-C^Q?O'?K94,US"7_S0I3
MIO@C1@5LZ9Z;E6R^0N=GXOARR;7_HJ:MG408Y7MM9-6!K8**B7:E+]T]G ""
M^!5 V '":P%1!XB\T5:9M[6@AF:)D@U2KMJRN<#?C4=;-TRXO[@VRIXRBS/9
M3U."0BO(@1WHAH-&MPLPE'%]A]ZCI_4"W=[<H1O$!'HLY5Y34>B$&-O9X4G>
M=7EHNX2O=/E.Q0A%P3L4CL/) 'Q^/3P^AQ/KMS<=]J9#SQ==:WK(44L1#U.X
MX9KIFN:08CL]&M0!</;V33 =?QKR]Y_(SMQ&O=OH$GOG5EUVVU),/(6;_$,6
M3.^C("&'4QL#56%P'_559_KB7E]\4=^C-)0/:8JOTC10-:")G(R(>YY^4+5C
M0B,.6XL;CSY8 M6.?)L86?NIV4AC9]"'I7TE0;D">[Z5TAP3-XC]NYO] U!+
M P04    " "HDF5:=T D.# "  !Y!   &0   'AL+W=O<FMS:&5E=',O<VAE
M970V-"YX;6R-5&%OFS 0_2L6JZ966@,A;3=E!"EI5G63ND6)NGUVX A>C4UM
M$[I_OSM#4":EU;Z [WSW[CW[SDFKS9,M 1Q[J:2RLZ!TKIZ&H<U*J+@=Z1H4
M[A3:5-RA:7:AK0WPW"=5,HRCZ":LN%!!FGC?RJ2);IP4"E:&V::JN/FS *G;
M63 .#HZUV)6.'&&:U'P'&W"/]<J@%0XHN:A 6:$5,U#,@OEXNIA0O _X*:"U
M1VM&2K9:/Y'Q-9\%$1$""9DC!(Z_/=R"E 2$-)Y[S& H28G'ZP/ZG=>.6K;<
MPJV6OT3NREGP*6 Y%+R1;JW;>^CU7!->IJ7U7];VL5' LL8Z7?7)R* 2JOOS
ME_X<CA+B^)6$N$^(/>^ND&>YY(ZGB=$M,Q2-:+3P4GTVDA.*+F7C#.X*S'/I
M#U>"86O(0.SY5H)EEVR>YX*.C$LF5'?O=(#G2W!<2'O!SM#/'H24Z+9)Z) '
MH8597W/1U8Q?J?F-JQ&;C#^P.(JOV.-FR<[/+OZ%"5'&H"4>M,0>=_*_6DY1
MZR"N3D/0"$QMS3.8!=CC%LP>@O3]N_%-]/D-@I.!X.0M]'1>Z48Y2Q3U'@QQ
M9(71%;MK5&[9/<B<3O:+S0CXDGW'H:2F%FK',EX+AS?"\]_8%3@6B&,&J1T,
MSYX;8?W=G=3>L;OV[&A:]VF4A/MC0>%1)]%0/G"S$\HR"07F1*./F&RZ1N\,
MIVO?7%OML%7]LL2W 0P%X'ZAM3L8U*_#:Y/^!5!+ P04    " "HDF5:'(02
MQLL"   >"   &0   'AL+W=O<FMS:&5E=',O<VAE970V-2YX;6RM5FM/VS 4
M_2M6AB:0&'DGP-I(T!;!I&T5'=N':1_<Y+:Q2.Q@.VWY][/=D/41*B;QI?'C
MGN-S;-_K]I:,/XH<0*)565#1MW(IJTO;%FD.)19GK *J9F:,EUBJ+I_;HN*
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
M =<%ZOZ*,?DRT,MNN\O*_@!02P,$%     @ J))E6N8V9>=*!   31D  !D
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
M=9NM&D;FY85P*@U=+\O'!!E%Q Z@]S-)2V/5L!/4_U,8_0!02P,$%     @
MJ))E6E\=)?>9!   TA\  !D   !X;"]W;W)K<VAE971S+W-H965T-S8N>&UL
MQ9EM;ZLV%,>_BL6NIE;J+>$Q29=$N@V@;=*5JN9V>^T&)Z "9K;3M-]^-E 2
M$N*;K$?:FX8'_W\VYU]\\/%D2]D+3P@1Z"W/"CXU$B'*.]/DRX3DF-_2DA3R
MSHJR' MYRM8F+QG!<27*,],>#'PSQVEAS";5M0<VF]"-R-*"/##$-WF.V?L]
MR>AV:EC&QX7'=)T(=<&<34J\)@LBGLH')L_,EA*G.2EX2@O$R&IJ?+/N(FNH
M!%6+OU*RY7O'2#W*,Z4OZN2/>&H,U(A(1I9"(;#\>25SDF6*),?Q3P,UVCZ5
M</_X@QY5#R\?YAES,J?9WVDLDJDQ,E!,5GB3B4>Z_9TT#^0IWI)FO/J+MG5;
M?VB@Y88+FC=B.8(\+>I?_-8$8D]@N2<$=B.PSQ4XC< Y%/@G!&XC<,_MP6L$
MWKD"OQ'X5>SK8%61#K# LPFC6\14:TE3!Y5=E5H&."W4?]9",'DWE3HQ6R28
M$33'92IPAJX"(G":\6OT%3TM G3UY1I]06F!?B1TPW$1\XDI9*]*:RZ;'H*Z
M!_M$#Y:-OM-")!R%14SB+L"4PVW';'^,^=[6$O_<9+?(\FZ0/;#=G@'-SY?;
M?<_S$SDN;I%C57*O1QZ>+^\;?'2^W-'$TFG]=RJ><X[_/<.YK^5NOUS->W>\
MQ$LR->3$Q@E[)<;LUU\L?_!;GS&0L  2%D+"(B!8QU"W-=35T6</C"X)B3E:
M,9HC.7\L7Q MU2S.$7DC;)GRPY>P-EJ+O=1H2%A0P[P*IC+EJYQ3W,%@8K[N
M.WC<:NP<-HIZ4,.]1IV(>VW$/7W$\;M,M8(C01''(N6K=T3R,J/OA""!W^2,
M+I*$9G%:K%$A/Q9X]<YQ(D1&*F6?'=H^+[4#$A9X1S'TAZYWX,9Q(W<T\@_<
M !I6QS6_=<W7N[9X0C*AH<?%4U_XM>)+PP\)"R!A(20L H)U[!RV=@X_E\>&
MD(9"P@)(6 @)BX!@'4-'K:$C[?L9GII!Y6KJ_%E4V\>EKD/"@AKF[TV00\<;
MC0ZFT>-6ON,XAUGMN-6)E#9N@S_^'U*:ML]+S8"$!>.>E';T@7'<R!T??6 <
M-SIAA378K= &6C/40@'=R]4S6B0D6R'YA<=+N3#?] 99#[LTRJ"T )06@M(B
M*%K7Y+UEN/6Y_-7HH7R%I 6@M!"4%D'1NK[:.U]M[<M;O[)E^\JBDK"4QN@J
M5S61ZUZG]43;0Y6V[^V?Z[47^PI)"T%I$12MZ^NN;&)I%_&S1;6P3CG?D!C%
M&Z8286WM39T,^8U,C-NZ!4=7:=%<[K?<T63PQEG0V@DH+02E15"TKK.[^HFE
M+Z"HJN %Z1:T; )*"T!I(2@M@J)U3=Z5;"SOD^D6M/X"2@M :2$H+8*B=7W=
M%74L?57GOZ1;T%+/3\:G2]X!Z$A"4%H$1>OZNJON6-I: W2Z!2T&-31-\@Y
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
MA:"5/LPQRC!3 ?+^EE+Q<J(>T.X)QO\!4$L#!!0    ( *B295J^26WMR0(
M (T(   9    >&PO=V]R:W-H965T<R]S:&5E=#@R+GAM;*U6;6_:,!#^*U:F
M39VTDI $UG40J4#W)E5"1=T^N\E!+!P[L\U+__W.3L@ !82J?DG\<L_C>^Z<
MNPPV4BUU#F#(MN!"#[W<F/+6]W6:0T%U1Y8@<&<N54$-3M7"UZ4"FCE0P?TP
M"/I^09GPDH%;FZID(%>&,P%31?2J**AZ&0&7FZ'7]78+CVR1&[O@)X.2+F &
MYJF<*ISY#4O&"A":24$4S(?>7?=VTK?VSN W@XW>&Q.KY%G*I9W\S(9>8!T"
M#JFQ#!1?:Q@#YY8(W?A;<WK-D1:X/]ZQ?W/:4<LSU3"6_ _+3#[T;CR2P9RN
MN'F4FQ]0Z^E9OE1R[9YD4]L&'DE7VLBB!J,'!1/5FV[K..P!NOT3@+ &A,>
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
M:XQ/U5&G/G[;N2G/23\0)KL\CE)82)=./Y1)R\JCQ_)&T$(?QCU0(6BF+U=
MY$>C LCG"TK%TXUZ07T //D'4$L#!!0    ( *B295KFJ22*= 8  %$G   9
M    >&PO=V]R:W-H965T<R]S:&5E=#@U+GAM;,U:VV[C-A#]%<)=%%D@D47J
MGCH&DGC3;H%M@S6211\9F[:%U<4E:3OY^U(7ZTHSME=JZX=$DF>.R*/1S!F:
MHUU,O[,5(1R\AD'$;@8KSM?7PR&;K4B(F1:O222^6<0TQ%R<TN60K2G!\]0I
M#(9(U^UAB/UH,!ZEUQ[I>!1O>.!'Y)$"M@E#3-_N2!#O;@9PL+_PU5^N>')A
M.!ZM\9),"7]:/U)Q-BQ0YGY((N;'$:!D<3.XA=<3(W5(+9Y]LF.58Y!,Y26.
MOR<GG^<W ST9$0G(C"<06/S;DGL2! F2&,??.>B@N&?B6#W>HS^DDQ>3><&,
MW,?!-W_.5S<#=P#F9($W ?\:[WXC^82L!&\6!RS]"W:YK3X LPWC<9@[BQ&$
M?I3]QZ\Y$14'9!UP0+D#:CA YX"#D3L8QSJ8N8.9,I--)>5A@CD>CVB\ S2Q
M%FC)04IFZBVF[T?)<Y]R*K[UA1\?3WD\^WYU)YB;@_LX%.'$</I '@,<,7 %
MIEE @'@!'@E- RV:$3!=84K 4^1S!FZ39^?S-W Q(1S[ ?LH_)ZF$W#QX2/X
M (: )<8,^%'F<"DNBN,O?A"(.['1D(N)),,9SO)!WV6#1@<&#1'X$D=\Q<"G
M:$[F=8"A8*"@ >UIN$-*Q-]QI $#7@*D(TLRH/OCW4V)^^1X=T,Q&Z-XJ$:*
M9YSU4&5\9WBF'"_)/==LC6?D9B"2"R-T2P;CGW^"MOZ+C*LNP28=@=5X- L>
M317Z^)DP+BB,*2"O:Y&HQ#&/P59<O=S'](4(Y.SPHXS7#-].\9,4O!U#2X>>
M#D?#;94RY3A.I:PCL!IE5D&9=39ENS0)D_D5WA(JB@I84APE%G/,"5A@GX(M
M#C8D)74>!P&F#*P)S0B6\IL-QJGP:T--MQOL*H=\*KL=@=78M0MV[>[8I22I
M^WZT!#.1+*FHL!L<@,!?"(+_(IA*"57?WP!O)'DH'@BS_ M=\?#>9"GE7HET
M*ND=@=5(=PK2G;-)Q\LE)<LD?'U!L2_DT"R+81FWV6T@JD2K!S7+JWX:D:L<
MV:DD=@16(]$M2'25)#Y.GV24*)U.K3M=@DTZ JN1Y15D>1W7;Z]+'KL$FW0$
M5N,1ZJ6ZU95A]\<F?!$%1(C73*K^N>&,XVB>9,5*Z;X$=V3I1TFRE*I1O57&
M/=>U3*/QMLKLH(6,AMU$/>AS2:E(?J@DY=N^4MSFE>+7O Y/DD3VD-3A9T4=
M?H\LV*K)EJ&Y3<4C,3-<S81-JI13.9<J5%*%3J/J:U%4[RM%]2(MB]*"^LX-
MS+RB.ON*:A\LJ$<BV3F2[&7\(8@ZA64O I42?7Q;E,C/18E\/E0B<ZQ:C83(
MT%K1([%S;:WUHDG,;$?S],JGA*Y/L&P2H+I+$*6-%:_0._T ;#<$'G*=5B*1
MF%G0,)O3ZT/IPU+J0[76KTZ\%W4/V_(>ZI[F.$VZ9':6YME-OOK0[K 4[U"M
MGJOK)YNT'/F,;8X(&KL5#:9NMEEHF]FNKEM-$OK0TK 4TU"MI@^1T$\ .:W
M<'4-MK))VRPI64WB^M#/L!304*V@/[T2.O/9$>'BMN+@2KPV+M*;TY88BEQD
MM=),'UH8EF(8*C5B.?%^0L1KYPY/<]TF5Q(S4T->DZH^Y"XJY2Y2R]V'F"Z(
M?T0=0FVE>F68J#EKF1DRG69*48_JW%F7>A:I]6PQZUX"!+6%JL@A=G.-268&
MA>P]W-Q/U-,ZE[92VR*UVCNZ-_J47I-R@]KKF[KNVJ;59*=M*.N@)C*[>@=5
MGVRI0I%:A?YPSZ,@P6@O0B+-0TT*VF:2OF@B,:OW174"2I6*^E[+1I+%;/G#
M[G0UNRNT.F^ER$7_JP5M)%G1E@53ITO:7:'5*2YU,?JO5[7?&< )3;@:Z63B
M^]#BJ-3BZ%]:V4:2I6U9VZX>S\GL]2'(42G(T5&"'+\$Y!)$13'-FIKW<FE;
M>CO(UIO*ZEX]A),)ZT/(HU+(HZ.$?$98'[FSK=%-1VN7IT[7M[M"J__07RI^
M0ZWXU9S*DZ5BM?*=N^U__T/%[W_H8*940YV\#:"/%L,H6PQ#W6+4:#XI->;
M]95*5_VKGWHP)U/7:9LQK.PU"@E=IGNVF(BO3<2S_3;%U6)?V&VZ&ZIQ_0Y>
M3[+=725,MMGL"Z9+P2H(R$) ZIHCY G-]F]E)SQ>ISN:7F+.XS ]7!$\)S0Q
M$-\OXICO3Y(;%+OHQO\ 4$L#!!0    ( *F295K6D>\1'@8  )$C   9
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
M5 J([Y=QS \OLH/\%L[T/U!+ P04    " "IDF5:S[^[?Z8#   -#P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970X-RYX;6RM5VUOXC@0_BM63CIMI=*\0D(/
M(A5RK[J]JXJZ^]E-!F(UL3G;P/;?G^V$+"]I-E1\ =N9Y_',D_'$,]DQ_BIR
M (F^E0454RN7<GUOVR+-H<3BCJV!JB=+QDLLU92O;+'F@#,#*@O;<YR176)"
MK7ABUAYY/&$;61 *CQR)35EB_C:#@NVFEFOM%Y[(*I=ZP8XG:[R"!<CG]2-7
M,[MAR4@)5!!&$8?EU'IP[Q/7 (S%%P([<3!&.I07QE[UY,]L:CG:(R@@E9H"
MJ[\MS*$H-)/RX[^:U&KVU,##\9[]-Q.\"N8%"YBSXBO)9#ZU(@MEL,2;0CZQ
MW1]0!S34?"DKA/E%N]K6L5"Z$9*5-5AY4!):_>-OM1 ' "]X!^#5 *\OP*\!
M?E] 4 ,"HTP5BM$AP1+'$\YVB&MKQ:8'1DR#5N$3JM_[0G+UE"B<C!>2I:^#
MF5(N0W-6JG02V+R0QP)3@09H424$8DLT?UH\FW7TH-\6D6_H4P(2DT+<*$N1
M8PYB8DOEEB:WT]J%6>6"]XX+KH<^,RIS@7ZE&63'!+:*IPG*VP<U\SH9_\+T
M#OGN+?(<;]CBT+P_/&B!)_WA?D<T?O.*?,/G?^@5M>E=\07M?+J2W(LU3F%J
MJ5(A@&_!BG_^R1TYO[1I=4VRY$ID1SH&C8Y!%WO\SZ9\ :X3^9D2*="_&RDD
MIAFAJ]LJMS\16F?QS>T,5H12]:Q-X&JCD=E(5]9M[+I^Z$SL[:%R+5;!,/*/
MK9).IS\HR;"19-@IR5=3%B$;/&R!JS*/GD!_*U34*M.HY*HJ;W"!_B9+V$OT
M!IB+FS91NK=RD4:B")7565>G/L-O;>D[[T4T;HBB]XB27D3!GL@+6HB.9!TU
MLHXNRK3?.:9*Y?,L:Y-Q=)8UT3 <GZ36N5$8G1HEG4Y^,+/"1H+P(@F^@% *
M('7<D  I"S56,J18Y/U4"<\"'H2^?W*6YBU6KNN,O1-A.EW_H#!1(TQTD3#J
M]K($TCL[HO,(A^/3[.CTX-*2?26R(['&C5CC*Y9L?7]XIV"/STNQY[CAB6XM
M5N=E/6FQ.BKK1Y&ZSO>+F-,=*Z.#K3DE_3*AIOM13-V[7IH,UV([UNC@LNKV
MUNBJWZX?['O!QZN;Z6*]K\16Z6T?] DE\)7IMP1*V8;*ZG;=K#8]W8/I9$[6
M9[K7,_W'=YJJ4?R,N;HW"53 4E$Z=Z'Z!O.J]ZHFDJU--_+"I.IMS#!7_2IP
M;:">+QF3^XG>H.F X_\!4$L#!!0    ( *F295H*'RJ3<@,  'T0   9
M>&PO=V]R:W-H965T<R]S:&5E=#@X+GAM;*U8T6[;-A3]%4(KAA18(Y&49#NS
M#=31BK58L:!IMF?:HBVB$NF1=)S^_4A*5BQ;%A*$+[9(W7-TSR&OS.OI7L@?
MJJ!4@Z>JY&H6%%IO;\)0K0I:$74MMI2;.VLA*Z+-4&Y"M964Y Y4E2&*HC2L
M"./!?.KF[N1\*G:Z9)S>2:!V547DSP4MQ7X6P. P\8UM"FTGPOET2S;TGNJ'
M[9TTH[!ER5E%N6*" TG7L^ CO,D@M@ 7\0^C>W5T#:R4I1 _[.!S/@LBFQ$M
MZ4I;"F*^'NDM+4O+9/+XKR$-VF=:X/'U@?V3$V_$+(FBMZ+\E^6ZF 7C .1T
M37:E_B;V?])&4&+Y5J)4[A/LF]@H *N=TJ)JP":#BO'ZFSPU1AP!8'H!@!H
M.@7$%P"X >"7 N(&$#MG:BG.AXQH,I]*L0?21ALV>^',=&@CGW&[[O=:FKO,
MX/3\,U^)BH+OY(DJ\ $TPZN_A%+OP8*:C45!)^8/(CG-P?*G'8,O.\E4SMP:
M*G"544U8:9 ?P,-]!J[>O0?O ./@>R%VBO!<34-MDK:/#E=-@HLZ070A08C
M5\%U89[,<YIW"4*CMI6,#I(7:)#Q"^'7 ,/? (I0TI/0[<OA<0\\>SD<#ZC!
M[0)BQX=?L(!][M;HN!]MWRHW:DM6=!:8UX:B\I$&\U]_@6GT>Y\S/LDR3V0=
MU^+6M7B(_>#:LM[@K![I2Q[67(GCLB_2QSF<P!2;Y7L\=J<G+($P0=VPK"<,
MXQ$:MV$=14FK*!E4=$LXR4E?]H.XU^X GV29)[*.7VGK5_JFNDE]NN:3+/-$
MUG%MU+HV\E@W-5=ZM-/3",+)2=F<1R48Q>E)U9Q'Q1.87"B:<2MG/"CG@3-M
M?LSN-=']"@;AK]T%/LDR3V0=VR:M;9,WU<[$IVL^R3)/9!W78/1\UHH\5D]#
M=KSE)RC%HY/RZ0E+$3ZKGYZP!*+T0@'!H_,C'-3TMRZH!"NQXUJR"T(&&5Z[
M'[RR9;[8NNZA9_?0FRJI@?NRSB=;YHNM:]WSN1<.'A!?6TSX[-2%Q^/163'U
MA"5)&IT64T\8QA$Z*:;PJ"^KJ-RX_E;5Q5+W*^ULVT-_=)WCR?S"]M:NWWNF
MJ1OSKT1NF&F]2KHVE-'UR.0DZUZW'FBQ==W?4FC32[K+@I*<2AM@[J^%T(>!
M?4#[C\/\?U!+ P04    " "IDF5:PY4:@B8$  "9%   &0   'AL+W=O<FMS
M:&5E=',O<VAE970X.2YX;6RM6-%NHS@4_16+':U::5NP,81TDTC3,*OM2*.M
MVNGNLQN<! W@K.TD[=^O#00".&PRY27!<.[!Y]CWYL:3/>,_Q)I2"=[2)!-3
M:RWEYLZVQ6)-4R)NV89FZLF2\91(->0K6VPX)5$>E"8V<AS?3DF<6;-)?N^1
MSR9L*Y,XHX\<B&V:$OY^3Q.VGUK0.MQXBE=KJ6_8L\F&K.@SE2^;1ZY&=L42
MQ2G-1,PRP.ER:GV&=R$,=$".^#NF>W%T#;245\9^Z,%#-+4</2.:T(74%$1]
M[>B<)HEF4O/XMR2UJG?JP./K _L?N7@EYI4(.F?)/W$DUU,KL$!$EV2;R">V
M_Y.6@CS-MV")R#_!OL0Z%EALA61I&:QFD,99\4W>2B.. J!_(@"5 :@=@$\$
MN&6 >VX +@-P[DPA)?<A))+,)ISM ==HQ:8O<C/S:"4_SO2Z/TNNGL8J3LX>
ML@5+*?A.WJ@ -Z >@B]O:F\)"JZ>Z(+M*'^_UD^WG-,(O+Z#KUL>BRC.5T^
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
M &V2U;A:+;18VP%N+C2.@_9QA2,^2 / ]PLA]&%A/E#_TV#R/U!+ P04
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
M\75E],*D^07N_#))[,M!ON?UL&5Y]C]02P,$%     @ J9)E6LXS _/X @
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
M*;VS<_1*UKU;/=!B;KN96&CLC>QKCNTN2!. WS,A]&I@%F@;Z.@O4$L#!!0
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
MD.7M47:T*-R)/1?:G/^NN3(7+DH;8.870NA#QUX"U16>_ !02P,$%     @
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
M+3)])W:_07V@T.+%(E/E)]I5>Z/00W&AM,CK8)-!SGCU31_K0NP%$-(30.H
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
M*B7>M.?-B615W;"NF53M;WV8J4\:X%J@KF\9DZ<3?8/N(VGQ$U!+ P04
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
MJ78$O/X$OQ.VYGB[H1DNP%\L:X+9"BSJA1(./J9$8EJ(3XKB99F"CQ\^@0^
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
MJ=@<(RH+Q/4%(?QU(+=?S78[^@]02P,$%     @ J9)E6F;@)W\< @  L00
M !H   !X;"]W;W)K<VAE971S+W-H965T,3 V+GAM;)54VX[3,!#]%<M(""2H
MD_2RJ"21VET0B[2HV@IX=I-)8JUC!]MMEK_'ES0$J5N)EV3&GG/FS&0F:2_5
MDVX #'INN= 9;HSIUH3HHH&6ZIGL0-B;2JJ6&NNJFNA. 2T]J.4DB:(5:2D3
M.$_]V4[EJ3P:S@3L%-+'MJ7J]Q:X[#,<X_/!(ZL;XPY(GG:TACV8[]U.68^,
M+"5K06@F!5)097@3K[<+%^\#?C#H]<1&KI*#E$_.N2\S'#E!P*$PCH':UPEN
M@7-'9&7\&CCQF-(!I_:9_;.OW=9RH!IN)?_)2M-D^ -&)53TR,VC[+_ 4,_2
M\162:_]$?8A=WF!4'+61[0"V"EHFPIL^#WV8 )+D!4 R !*O.R3R*N^HH7FJ
M9(^4B[9LSO"E>K05QX3[*'NC["VS.)/OH;8M-E"B>Q$^L>O5>[0I2^9,RA&;
M7+RY T,9UV]38FQVQT&*(=,V9$I>R!0GZ$$*TVCT2910_DM K.Q1>W+6ODVN
M,GZE8H;F\3N41,D2Z5#)%=[YV).YYYW_3T\N%1QH%I=IW#JM=4<+R+#=%PWJ
M!#A__2I>11^OB%R,(A?7V/-OQ_8 "LG*KD8GE:$'#N<>Z$MB ]W*T[E5/>5Q
M2DY3!60R1BVHVB^+1H4\"A,F:CP=]W$3QO!O>%CF!ZIJ)C3B4%EH-+M98J3"
M@@3'R,X/Y4$:.^+>;.P_!90+L/>5E.;LN 3C7RK_ U!+ P04    " "IDF5:
M21E&)FP#  #*%0  #0   'AL+W-T>6QE<RYX;6S=6-%NTS 4_94H8VB3T-(T
M+&U86PDJ34("-&E[X&UR&Z>UY#C!=4?+([_"*U_!I_ E^-IIDG:^8]L#ZVBU
MQ?;Q.??X^B;Q-EBH-:>7<TJ5M\JY6 S]N5+EFR!83.<T)XN3HJ1"(UDA<Z)T
M5\Z"12DI21= RGG0[73B("=,^*.!6.;GN5IXTV(IU-#OUT.>O;Q/AWX8O_8]
M*S<N4CKTKX]>?ED6ZNR%9Z\'KPX..M?'9[OC1P8X]@.GZ.D]1$\ZN*[&,.EX
M6]I,/]1"EGB(T7IN1[^__]SVU++48!M3F'C?+?[K!ZI=0W^33NZ5R3L2B0CW
M.HX\ZK0WJ80.1@Z=Y!;5$(.J D>#K!!-(4:^'=#*)*?>#>%#?TPXFT@&K(SD
MC*_M<!<&I@4OI*?T':!#A3"R^&;AT/;@YJAT<B8*:6+;"/;WI)J^ VQZ8)!Q
M7AOL^G9@-"B)4E2*<]TQD\W@+<BKVE?K4CN<2;(.NZ=^0S 7'612R)3*.DSH
M;X9& TXSL"/9; Y7590!@$H5N6ZDC,P*08R'#:-J:-DIY?P2GAR?LRWM5=;:
M,[/=HFYJ0U73RM@.Z+?5K'9;]O11NE[);@KU;JF7(TP?*I1>2)JQE>FOLMH
MIA[BZJ0L^?HM9S.14[OX>P<<#<B&Y\T+R;[I:% J4SU I>_=4*G8M#WR59+R
MBJ[4IIQ6&>ZY^PP]_]L\SZB@DO"V:5W[^YSE1SNN7K5/X=D\5G8=.TU&O?WW
M6!TO]MUD_!Q,/HOM[N^_R2C9?X_587+/3?:>[,G^$)/A7IH,JN-:ZTRX=2*L
M1STX>0_]3W"&YTU0;[)D7#%1]>8L3:FX=3#4\HI,]!^J6_IZ?DHSLN3JJ@:'
M?M/^2%.VS)-ZU@4DHIK5M#_ \L*X/O;K6$RD=$73<=65LXEI>KJAHU8?(.PB
MY^;C1C".Q=P(8%@<S '&L2PLSO^TGCZZ'HMAWOI.I(]R^BC'LES(V'RQ.&Y.
MHC_NE29)%,4QEM'QV.E@C.4MCN''K89Y P86!R(]+-?X;N,5<G<=8'MZ5X5@
M*\4K$5LIGFM W'D#1I*X=QN+ PQL%[#:@?CN.%!3;DX4P:YBWK [&$>2!$.@
M%MTU&L=(=F+XNO<'NTNB*$G<"&!N!U&$(7 WX@CF #Q@2!29]^#.^RC8O*>"
MYK^WHS]02P,$%     @ J9)E6I>*NQS     $P(   L   !?<F5L<R\N<F5L
M<YV2N6[#, Q ?\70GC 'T"&(,V7Q%@3Y 5:B#]@2!8I%G;^OVJ5QD L9>3T\
M$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:<Z10J[4+!XUA]) 1-MC0[!:+#Y
M+AEFM[UD%J=SI%>(7->=I3W;+T]!;X"O.DQQ0FE(2S,.\,W2?S+W\PPU1>5*
M(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'<?VD-/IKV,BM'I;Z/EQ:%0*CMQC
M)8QQ8K3^-8+)#^Q^ %!+ P04    " "IDF5:$VBOED4'   H10  #P   'AL
M+W=O<FMB;V]K+GAM;,6<WV_:.A2 _Q6+ITVZ7" _R;1.HH6NE=J""MKKY 87
MK"8QUT[:;7_]'*?=3F@XNB\'GFA"&CY.<OSYV Z?7Y1^>E#JB?W(L\*<];9E
MN?LT&)AT*W)N_E4[4=AW'I7.>6DW]69@=EKPM=D*4>;9P!L.HT'.9='[\OGM
M7 L]@!NJ%&DI56%WUCN^2?%B_KY?;[)G:>2#S&3Y\ZSG_LY$C^6RD+G\)=9G
MO6&/F:UZN5):_E)%R;-EJE66G?5&S1O?A"YE^F[WLH9<\0?C]I3\X9Y;D+->
M-+0G?)3:E.X(=WYN&9^%/;C9JDIU*;-2Z"DOQ5>MJITL-O5I[+<8@*_AXO#V
MV@3QD_X_852/CS(54Y56N2C*)HY:9#5@8;9R9WJLX+DXZ[T=PB;%FLV*T@:)
M71?-J>RQ]3>U'WV];KYU:7%!#/4G:=_0UVL'3@=Y,;];SF^NIY/5;,K.)S>3
MNXL96U[-9JLE /000.]D@.S#@@-('X'TCPBY7-F7V]F=!9Q?LOEB=@\@ P0R
M.!GDQ?QV 2!#!#(\(>1W#T!&"&1T,LCEU01>[AB!C$\7R<GR"D".$<@Q+>14
MF%3+7;V?J4=6;@4[KXPLA#$ ,$$ $UK <VZDJ=$66AA[Z+NF>XBUW4-:N$GZ
M7V4_U.V'3*A/B(5RR:5FWWA6"78KN*FTJ/^AA8?99$2LDY7F:\$F::HJ2\7N
M12KD,W<,?P$QDXR(53*W.: !5RMRF#U&Q/JP";#CTO9D?MB3&&$8M]T:1PL)
M,76,B-UA>ZP[VY_\Z<AF-C5V]3] .LP9(V)I7-O&H]C4'\HFQHAV2F">&!&+
MXJM2ZQ>999 '4\*(V DV.74EUNQ&<E=:R'8.8#(8$=O@1A6;_DKHG$W% [RS
M/$P#'K$&;FP[VXJ1APG HZXH5)[+TC7Z_[ +6_39^DL4J7QM,2 F6E80BV"Y
MY5JP"[Z3MBJ%4%CC[Q$W_C.N"QLNPQ;6 8X0DF&MOT?<^B]+E3[U;6_()J:]
MPK4"W$%LD?%6Y\/##. 1&^"Z2%4NV(K_:.<#UNY[U,6"30'-TY*=<QNJ5-BL
ML%?7G<INM?(!LX!';(&FWW%A[[E-.W:8"CQB%2RKW2YS'4B>V5PU6W:9J9<_
MHR@0$]."1ZR%I=C41]C4Z![?\3$[^,1VZ*Q@V(>%RF3:5JN/:<,GUL8!S)7K
M W^$E)@U?&)KP(JK$PX=A"*VQX'2ZXT38F(J\8E5<K $:T A)N82G]@E[PJQ
MSNN-F<4G-LOABLRA0DS,+#ZQ6;K+LLYH8J[QB5WSKC[K),0TXQ-KYJU0ZP(+
M,,4$Y.-0[RJV3D;,+P&Q7YHBJ1,+$TIPS#*DDPXS2G#T>J03$9W4.&EA KO7
M 6:3X(B526<,,9$$IRQ16I,N 2:2X)@E2F<0,7\$IZQ5VD'$)!*<HE;I"F:(
M&24\3=$R%26761L3DTI(+)5V.=!%A[DE/&:QTJ]#F<E<%ES_9(M*IQ 3DTQ(
M+!D4LY4X(2::D%@T>YAN4[LT<OU&B(G.GQ.+YETT%;NLSV,K&5-E<,@DQ)03
M$BOG8*W:)!'$Q)03$BOG$&:?3866SQ 3<T]([)[#F-:6Q09B8NX)B=V#5/[U
M98>+.S#Y1,3R.8S99_8]B(G))R*6#X9ITQYB8A:*B"W4,8[2(<H(,U!T[#GW
MNGU?KUTC:CMS$!,S4'2R&7@74HB)&2@ZR33\GZL.,=$U7,>>C^^^+S'[1,3V
M>8]X\+[$[!,1V^?ON%17 #'A1,3"Z1R8ZH",,=W$U-/WK44%W7R89^(CC9QU
M<6%BB8G%\LK5=\,^JG ='ELQUHV//1C.O\687&)BN?S!O.5EI9M[\  F)I>8
M>G4PMFRC587%F%QB8KGLC9=VW9.85&)BJ;3QW*V9JZ(9.C5L#C'1I<'$8ND:
MU^T*)6:5F-@J'8Q-JE=N- AB8HJ)J<?3L/'G5MZ,,<F,B26#8_H0$W/-F-@U
M.&8 ,3'UC*EG;5#,$&)BZAD3JP?'C" FII[Q*:=POL<0$U//F%H]*.888F(*
M&E,K",5,(":FH#%Y;0,FQ/KL=?/#C3+F(SN'ZQ['Z/,IY*L"NC#M9E.%0TS,
M0F-B"^UAMGO$4QC-!+-00FRA/<R%5C5#/;-S+U(%AU,3S$()L84.7_3Z]H1U
M=X)9*"&VT!YF'4+;8<]DD^ZPAY1@%DJ(+;2'"08P9#T#"3$Q"R7D!1 V"0Y[
M2 EFH83Z 4D4$_:0$LQ"R4F7%, >4H)9*#GJDH+]AA/6:PEFH8380ON8]\*4
MNDKK\81BP^"CNPGZK"2QA?8Q]U(=8(Z&^'.3U-40NE;#;X&B#U,.J>NASM4:
M?7:N!7]:MR.*/E8YI*Z(#H"^[F^!HH]7#JEK(@RT5:^/ANCCED/JJN@ J!LN
MSF0+%'WJ<DA=%QT ?<W^%BCZ .;0.6G@#C=?/J_%HRS$^LY^B+'[4YZE"\WJ
M%W<N+PCK9P$?JRR[L/OFQ8WBZ[<?^GC[D9(OOP%02P,$%     @ J9)E6N,-
MK,?_ @  13X  !H   !X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<\W;RV[:
M0!B&X5M!OH!XSH<JR:J;;*O< "(&HG 2=M7D[HN2!7RC+KJ)_*[0&#&\&S]"
M9O[[7\-N.;T>#^/V]30NWO>[P_C0;:?I]*/OQ]5VV"_'N^-I.%S>61_/^^5T
M69XW_6FY>EMNAMX9D_KS[1[=X_WMGHOGC]/P/SL>U^O7U?#SN/J]'P[3/S;N
M_QS/;^-V&*9N\;P\;X;IH>O?=]?+8__Y8N\N.W>+IY>'[OST8KM^[B G06[^
M("]!?OZ@($%A_J H07'^H"1!:?Z@+$%Y_J B067^H"I!=?X@:U1& TAJL 9H
M;95K"_#:*M@6(+95LBW ;*MH6X#:5MFV +>MPFT!<ENEVP+LMHJW!>CM5&\'
MT-NIW@Z@MVM^; /T=JJW ^CM5&\'T-NIW@Z@MU.]'4!OIWH[@-Y.]78 O9WJ
M[0!Z>]7; _3VJK<'Z.U5;P_0VS</2P!Z>]7; _3VJK<'Z.U5;P_0VZO>'J"W
M5[T]0&^O>GN WD'U#@"]@^H= 'H'U3L ] ZJ=P#H'9J'W0"]@^H= 'H'U3L
M] ZJ=P#H'53O - [J-X!H'=4O2- [ZAZ1X#>4?6. +VCZAT!>D?5.P+TCLV?
ME0"]H^H= 7I'U3L"](ZJ=P3H'57O"- [J=X)H'=2O1- [Z1Z)X#>2?5. +V3
MZIT >B?5.P'T3LUA$X#>2?5. +V3ZIT >B?5.P'TSJIW!NB=5>\,T#NKWAF@
M=U:],T#OK'IG@-Y9]<X O;/JG0%ZY^:P($#OK'IG@-Y9]<X O8OJ70!Z%]6[
M /0NJG<!Z%U4[P+0NZC>!:!W4;T+0.^B>A> WD7U+@"]2W/8&Z!W4;T+0.^J
M>E> WE7UK@"]J^I= 7I7U;L"]*ZJ=P7H757O"M"[JMX5H'=5O2M [ZIZ5X#>
MM1G6 >AM33NN _#;FF9@QP $MZ89V3$ PZUIAG8,0'%KFK$= W#<FF9PQP D
MMZ89W3'?:?DX?>R&\5KTM6X"OE/NZ?+9X?K]G\NOB^W]_HEU?YLQ/OX%4$L#
M!!0    ( *F295JA0-8C;0(  /\[   3    6T-O;G1E;G1?5'EP97-=+GAM
M;,W;WVZ;,!3'\5>)N*T"V& #4].;=K=;+_8"#)P&A7^RW2Y]^SFDK;2IBU9E
MTKXW08GM\SOX2)^[7'][GHU;'89^=)MHY_W\*4E<LS-#[>)I-F-8V4YVJ'WX
M:A^2N6[V]8-)9)KJI)E&;T:_]L<:T<WUG=G6C[U??3Z$GUTWC9O(FMY%J]O3
MQF/6)JKGN>^:VH?UY&EL?TM9OR3$X>2RQ^VZV5V%#5'R;L)QY<\!+^>^/AEK
MN]:L[FOKO]1#V)4<^L3YY]ZX^'R)=WJ<MMNN,>W4/ [A2.QF:^K6[8SQ0Q^?
MBEZ=3_;AALWI4UR<OY0Y%QAVWMMI=F%BUGP\[G4DQ]/K.10RUG?G7_$M,92^
M^/W,<=JM:?\R.USOC\GNEWFX9'E<?L>_SOBM_@?[D) ^,D@?.:0/!>E#0_HH
M('V4D#XJ2!\BI31"$5502!444P4%54%155!8%117!05609%54F25%%DE159)
MD5529)44625%5DF155)DE119,XJL&476C")K1I$UH\B:463-*+)F%%DSBJP9
M1=:<(FM.D36GR)I39,TILN8467.*K#E%UIPB:TZ155%D5119%45619%54615
M%%D5159%D5519%44635%5DV155-DU119-45639%54V35%%DU159-D;6@R%I0
M9"THLA8460N*K 5%UH(B:T&1M:#(6E!D+2FREA192XJL)476DB)K29&UI,A:
M4F0M*;*6%%DKBJP51=:*(FM%D;6BR%I19*THLE8462N*K!5%5I%2:!4IQ5:1
M4G 5*457D5)X%2G%5Y'^3V"_3]/^'\<OSWBHN_$U/UG^]WOS$U!+ 0(4 Q0
M   ( *B295H'04UB@0   +$    0              "  0    !D;V-0<F]P
M<R]A<' N>&UL4$L! A0#%     @ J))E6O7>5P;O    *P(  !$
M     ( !KP   &1O8U!R;W!S+V-O<F4N>&UL4$L! A0#%     @ J))E6IE<
MG",0!@  G"<  !,              ( !S0$  'AL+W1H96UE+W1H96UE,2YX
M;6Q02P$"% ,4    " "HDF5:<KZ!+,\"  #$"   &               @($.
M"   >&PO=V]R:W-H965T<R]S:&5E=#$N>&UL4$L! A0#%     @ J))E6J#R
M?K7C!@  #1P  !@              ("!$PL  'AL+W=O<FMS:&5E=',O<VAE
M970R+GAM;%!+ 0(4 Q0    ( *B295I&NCK DP(  &8'   8
M  " @2P2  !X;"]W;W)K<VAE971S+W-H965T,RYX;6Q02P$"% ,4    " "H
MDF5:Z_&G684&   ''   &               @('U%   >&PO=V]R:W-H965T
M<R]S:&5E=#0N>&UL4$L! A0#%     @ J))E6F"_O!UP P    L  !@
M         ("!L!L  'AL+W=O<FMS:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0
M   ( *B295J772+%J (  /(&   8              " @58?  !X;"]W;W)K
M<VAE971S+W-H965T-BYX;6Q02P$"% ,4    " "HDF5:VTZ!?SP%   K'@
M&               @($T(@  >&PO=V]R:W-H965T<R]S:&5E=#<N>&UL4$L!
M A0#%     @ J))E6FPHEF?]!@  91T  !@              ("!IB<  'AL
M+W=O<FMS:&5E=',O<VAE970X+GAM;%!+ 0(4 Q0    ( *B295H4;? ZA00
M /P)   8              " @=DN  !X;"]W;W)K<VAE971S+W-H965T.2YX
M;6Q02P$"% ,4    " "HDF5:ZRV6E'HH  #]A0  &0              @(&4
M,P  >&PO=V]R:W-H965T<R]S:&5E=#$P+GAM;%!+ 0(4 Q0    ( *B295HJ
MMO"XY!$  *)3   9              " @45<  !X;"]W;W)K<VAE971S+W-H
M965T,3$N>&UL4$L! A0#%     @ J))E6O$OHWG>"   P1D  !D
M     ("!8&X  'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6Q02P$"% ,4
M" "HDF5:[B"LVFX#   :"0  &0              @(%U=P  >&PO=V]R:W-H
M965T<R]S:&5E=#$S+GAM;%!+ 0(4 Q0    ( *B295I;!)G_NP(  *H&   9
M              " @1I[  !X;"]W;W)K<VAE971S+W-H965T,30N>&UL4$L!
M A0#%     @ J))E6C?K)%5@ @  N@4  !D              ("!#'X  'AL
M+W=O<FMS:&5E=',O<VAE970Q-2YX;6Q02P$"% ,4    " "HDF5:_*J>B.8"
M  #[!@  &0              @(&C@   >&PO=V]R:W-H965T<R]S:&5E=#$V
M+GAM;%!+ 0(4 Q0    ( *B295K;HT\:: 0  "4*   9              "
M@<"#  !X;"]W;W)K<VAE971S+W-H965T,3<N>&UL4$L! A0#%     @ J))E
M6EJFYB=& P    @  !D              ("!7X@  'AL+W=O<FMS:&5E=',O
M<VAE970Q."YX;6Q02P$"% ,4    " "HDF5:G8A,*L0"  ".!@  &0
M        @('<BP  >&PO=V]R:W-H965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0
M   ( *B295K(L,9XU00  /H*   9              " @=>.  !X;"]W;W)K
M<VAE971S+W-H965T,C N>&UL4$L! A0#%     @ J))E6GP9Q&HQ!   ; L
M !D              ("!XY,  'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6Q0
M2P$"% ,4    " "HDF5:,V1YR:()  #(&   &0              @(%+F
M>&PO=V]R:W-H965T<R]S:&5E=#(R+GAM;%!+ 0(4 Q0    ( *B295J"2/H#
M5P4   \/   9              " @22B  !X;"]W;W)K<VAE971S+W-H965T
M,C,N>&UL4$L! A0#%     @ J))E6D5P@V>H!   8 P  !D
M ("!LJ<  'AL+W=O<FMS:&5E=',O<VAE970R-"YX;6Q02P$"% ,4    " "H
MDF5:C6A7C 4,  #8,0  &0              @(&1K   >&PO=V]R:W-H965T
M<R]S:&5E=#(U+GAM;%!+ 0(4 Q0    ( *B295I4SO*[<PL   LB   9
M          " @<VX  !X;"]W;W)K<VAE971S+W-H965T,C8N>&UL4$L! A0#
M%     @ J))E6M:.WU86!0  X0X  !D              ("!=\0  'AL+W=O
M<FMS:&5E=',O<VAE970R-RYX;6Q02P$"% ,4    " "HDF5:5I%X,88%  !I
M$   &0              @('$R0  >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM
M;%!+ 0(4 Q0    ( *B295JWV%S&0P,  (H'   9              " @8'/
M  !X;"]W;W)K<VAE971S+W-H965T,CDN>&UL4$L! A0#%     @ J))E6K[J
M3-<="@  FQH  !D              ("!^](  'AL+W=O<FMS:&5E=',O<VAE
M970S,"YX;6Q02P$"% ,4    " "HDF5:I1/R ILN  #7H@  &0
M    @(%/W0  >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    (
M *B295KV[$,4^P(  %4'   9              " @2$, 0!X;"]W;W)K<VAE
M971S+W-H965T,S(N>&UL4$L! A0#%     @ J))E6JK+ZR+J"   I"   !D
M             ("!4P\! 'AL+W=O<FMS:&5E=',O<VAE970S,RYX;6Q02P$"
M% ,4    " "HDF5:LV,B.H8#  #M"@  &0              @(%T& $ >&PO
M=V]R:W-H965T<R]S:&5E=#,T+GAM;%!+ 0(4 Q0    ( *B295H32)O!"0,
M $,(   9              " @3$< 0!X;"]W;W)K<VAE971S+W-H965T,S4N
M>&UL4$L! A0#%     @ J))E6J[..+@I @  /@4  !D              ("!
M<1\! 'AL+W=O<FMS:&5E=',O<VAE970S-BYX;6Q02P$"% ,4    " "HDF5:
M8!6H.FT"  "E!0  &0              @('1(0$ >&PO=V]R:W-H965T<R]S
M:&5E=#,W+GAM;%!+ 0(4 Q0    ( *B295H _*HJ\ (  .H&   9
M      " @74D 0!X;"]W;W)K<VAE971S+W-H965T,S@N>&UL4$L! A0#%
M  @ J))E6N'96O[O @  J 8  !D              ("!G"<! 'AL+W=O<FMS
M:&5E=',O<VAE970S.2YX;6Q02P$"% ,4    " "HDF5:G*]JT],"   '!P
M&0              @('"*@$ >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;%!+
M 0(4 Q0    ( *B295IQL+.5B@(  .P%   9              " @<PM 0!X
M;"]W;W)K<VAE971S+W-H965T-#$N>&UL4$L! A0#%     @ J))E6HE5)VFS
M P  -PH  !D              ("!C3 ! 'AL+W=O<FMS:&5E=',O<VAE970T
M,BYX;6Q02P$"% ,4    " "HDF5:8+U>_:,"   W!@  &0
M@(%W- $ >&PO=V]R:W-H965T<R]S:&5E=#0S+GAM;%!+ 0(4 Q0    ( *B2
M95KSK"],3@,  " (   9              " @5$W 0!X;"]W;W)K<VAE971S
M+W-H965T-#0N>&UL4$L! A0#%     @ J))E6A^?%YCE!P  0",  !D
M         ("!UCH! 'AL+W=O<FMS:&5E=',O<VAE970T-2YX;6Q02P$"% ,4
M    " "HDF5:/FA_66D'  "'%@  &0              @('R0@$ >&PO=V]R
M:W-H965T<R]S:&5E=#0V+GAM;%!+ 0(4 Q0    ( *B295KH^5!9D ,  "8*
M   9              " @9)* 0!X;"]W;W)K<VAE971S+W-H965T-#<N>&UL
M4$L! A0#%     @ J))E6K5HS:-Z P  8PH  !D              ("!64X!
M 'AL+W=O<FMS:&5E=',O<VAE970T."YX;6Q02P$"% ,4    " "HDF5:J>VD
MEQX#   #!P  &0              @($*4@$ >&PO=V]R:W-H965T<R]S:&5E
M=#0Y+GAM;%!+ 0(4 Q0    ( *B295K!/^0-$P8  ' 0   9
M  " @5]5 0!X;"]W;W)K<VAE971S+W-H965T-3 N>&UL4$L! A0#%     @
MJ))E6MKHP7A-"   -4<  !D              ("!J5L! 'AL+W=O<FMS:&5E
M=',O<VAE970U,2YX;6Q02P$"% ,4    " "HDF5:K1&0^#\6  #4I0$ &0
M            @($M9 $ >&PO=V]R:W-H965T<R]S:&5E=#4R+GAM;%!+ 0(4
M Q0    ( *B295J&+TTT5T$  #!X!0 9              " @:-Z 0!X;"]W
M;W)K<VAE971S+W-H965T-3,N>&UL4$L! A0#%     @ J))E6K&9<!H[!0
M32L  !D              ("!,;P! 'AL+W=O<FMS:&5E=',O<VAE970U-"YX
M;6Q02P$"% ,4    " "HDF5:$U-77U8-   8O@  &0              @(&C
MP0$ >&PO=V]R:W-H965T<R]S:&5E=#4U+GAM;%!+ 0(4 Q0    ( *B295H\
M4E%N$@,  #@*   9              " @3#/ 0!X;"]W;W)K<VAE971S+W-H
M965T-38N>&UL4$L! A0#%     @ J))E6I%UC,<J!0  "!X  !D
M     ("!>=(! 'AL+W=O<FMS:&5E=',O<VAE970U-RYX;6Q02P$"% ,4
M" "HDF5:6:ARWL4"  #7"@  &0              @(':UP$ >&PO=V]R:W-H
M965T<R]S:&5E=#4X+GAM;%!+ 0(4 Q0    ( *B295I!N\]F.P,  $4)   9
M              " @=;: 0!X;"]W;W)K<VAE971S+W-H965T-3DN>&UL4$L!
M A0#%     @ J))E6EI2@M&  @  WP<  !D              ("!2-X! 'AL
M+W=O<FMS:&5E=',O<VAE970V,"YX;6Q02P$"% ,4    " "HDF5:]2Y&86\"
M  !C!@  &0              @('_X $ >&PO=V]R:W-H965T<R]S:&5E=#8Q
M+GAM;%!+ 0(4 Q0    ( *B295JYA;6J! ,  *((   9              "
M@:7C 0!X;"]W;W)K<VAE971S+W-H965T-C(N>&UL4$L! A0#%     @ J))E
M6OY"36D: @  @P4  !D              ("!X.8! 'AL+W=O<FMS:&5E=',O
M<VAE970V,RYX;6Q02P$"% ,4    " "HDF5:=T D.# "  !Y!   &0
M        @($QZ0$ >&PO=V]R:W-H965T<R]S:&5E=#8T+GAM;%!+ 0(4 Q0
M   ( *B295H<A!+&RP(  !X(   9              " @9CK 0!X;"]W;W)K
M<VAE971S+W-H965T-C4N>&UL4$L! A0#%     @ J))E6D?_+I(C!   7A4
M !D              ("!FNX! 'AL+W=O<FMS:&5E=',O<VAE970V-BYX;6Q0
M2P$"% ,4    " "HDF5:1:)RV^L#  #$$@  &0              @('T\@$
M>&PO=V]R:W-H965T<R]S:&5E=#8W+GAM;%!+ 0(4 Q0    ( *B295HN&,K3
MJ@(  '$)   9              " @1;W 0!X;"]W;W)K<VAE971S+W-H965T
M-C@N>&UL4$L! A0#%     @ J))E6N8V9>=*!   31D  !D
M ("!]_D! 'AL+W=O<FMS:&5E=',O<VAE970V.2YX;6Q02P$"% ,4    " "H
MDF5:^'&[ J4"  "?!P  &0              @(%X_@$ >&PO=V]R:W-H965T
M<R]S:&5E=#<P+GAM;%!+ 0(4 Q0    ( *B295KO)(R]A 0  %@;   9
M          " @50! @!X;"]W;W)K<VAE971S+W-H965T-S$N>&UL4$L! A0#
M%     @ J))E6N&9^WWK 0  J00  !D              ("!#P8" 'AL+W=O
M<FMS:&5E=',O<VAE970W,BYX;6Q02P$"% ,4    " "HDF5:DS)MJ[8#  !?
M#   &0              @($Q" ( >&PO=V]R:W-H965T<R]S:&5E=#<S+GAM
M;%!+ 0(4 Q0    ( *B295I-O8L8#@,  )<+   9              " @1X,
M @!X;"]W;W)K<VAE971S+W-H965T-S0N>&UL4$L! A0#%     @ J))E6@0R
MP[;L P  7Q   !D              ("!8P\" 'AL+W=O<FMS:&5E=',O<VAE
M970W-2YX;6Q02P$"% ,4    " "HDF5:7QTE]YD$  #2'P  &0
M    @(&&$P( >&PO=V]R:W-H965T<R]S:&5E=#<V+GAM;%!+ 0(4 Q0    (
M *B295K-+>D\R0(  &$(   9              " @588 @!X;"]W;W)K<VAE
M971S+W-H965T-S<N>&UL4$L! A0#%     @ J))E6I=''[]% P  ^0X  !D
M             ("!5AL" 'AL+W=O<FMS:&5E=',O<VAE970W."YX;6Q02P$"
M% ,4    " "HDF5:?B5@. ,$   ]$0  &0              @('2'@( >&PO
M=V]R:W-H965T<R]S:&5E=#<Y+GAM;%!+ 0(4 Q0    ( *B295J *<VSZ <
M /\V   9              " @0PC @!X;"]W;W)K<VAE971S+W-H965T.# N
M>&UL4$L! A0#%     @ J))E6E+NAXG? P  'Q0  !D              ("!
M*RL" 'AL+W=O<FMS:&5E=',O<VAE970X,2YX;6Q02P$"% ,4    " "HDF5:
MODEM[<D"  "-"   &0              @(%!+P( >&PO=V]R:W-H965T<R]S
M:&5E=#@R+GAM;%!+ 0(4 Q0    ( *B295J]^X4S@P4  /$<   9
M      " @4$R @!X;"]W;W)K<VAE971S+W-H965T.#,N>&UL4$L! A0#%
M  @ J))E6LT0>\22!   #!8  !D              ("!^S<" 'AL+W=O<FMS
M:&5E=',O<VAE970X-"YX;6Q02P$"% ,4    " "HDF5:YJDDBG0&  !1)P
M&0              @('$/ ( >&PO=V]R:W-H965T<R]S:&5E=#@U+GAM;%!+
M 0(4 Q0    ( *F295K6D>\1'@8  )$C   9              " @6]# @!X
M;"]W;W)K<VAE971S+W-H965T.#8N>&UL4$L! A0#%     @ J9)E6L^_NW^F
M P  #0\  !D              ("!Q$D" 'AL+W=O<FMS:&5E=',O<VAE970X
M-RYX;6Q02P$"% ,4    " "IDF5:"A\JDW(#  !]$   &0
M@(&A30( >&PO=V]R:W-H965T<R]S:&5E=#@X+GAM;%!+ 0(4 Q0    ( *F2
M95K#E1J")@0  )D4   9              " @4I1 @!X;"]W;W)K<VAE971S
M+W-H965T.#DN>&UL4$L! A0#%     @ J9)E6O[%0C7A P  E@P  !D
M         ("!IU4" 'AL+W=O<FMS:&5E=',O<VAE970Y,"YX;6Q02P$"% ,4
M    " "IDF5:>XS.0:$$  ! $   &0              @(&_60( >&PO=V]R
M:W-H965T<R]S:&5E=#DQ+GAM;%!+ 0(4 Q0    ( *F295KD=R&BM04  +XL
M   9              " @9=> @!X;"]W;W)K<VAE971S+W-H965T.3(N>&UL
M4$L! A0#%     @ J9)E6LXS _/X @  \P<  !D              ("!@V0"
M 'AL+W=O<FMS:&5E=',O<VAE970Y,RYX;6Q02P$"% ,4    " "IDF5:4-T.
M2E@#  !,"P  &0              @(&R9P( >&PO=V]R:W-H965T<R]S:&5E
M=#DT+GAM;%!+ 0(4 Q0    ( *F295K6+C=A200  )<.   9
M  " @4%K @!X;"]W;W)K<VAE971S+W-H965T.34N>&UL4$L! A0#%     @
MJ9)E6H F F>G @  S@<  !D              ("!P6\" 'AL+W=O<FMS:&5E
M=',O<VAE970Y-BYX;6Q02P$"% ,4    " "IDF5:*(2FFZ,"  #P!P  &0
M            @(&?<@( >&PO=V]R:W-H965T<R]S:&5E=#DW+GAM;%!+ 0(4
M Q0    ( *F295K0S'<+ 0,  /\(   9              " @7EU @!X;"]W
M;W)K<VAE971S+W-H965T.3@N>&UL4$L! A0#%     @ J9)E6EJ2.CN= P
M @\  !D              ("!L7@" 'AL+W=O<FMS:&5E=',O<VAE970Y.2YX
M;6Q02P$"% ,4    " "IDF5:66QTBY$"   C"   &@              @(&%
M? ( >&PO=V]R:W-H965T<R]S:&5E=#$P,"YX;6Q02P$"% ,4    " "IDF5:
M?KXJX,X#   P#0  &@              @(%.?P( >&PO=V]R:W-H965T<R]S
M:&5E=#$P,2YX;6Q02P$"% ,4    " "IDF5:51@RD'(&   9'@  &@
M        @(%4@P( >&PO=V]R:W-H965T<R]S:&5E=#$P,BYX;6Q02P$"% ,4
M    " "IDF5:ZFJWL-8#  #M$P  &@              @('^B0( >&PO=V]R
M:W-H965T<R]S:&5E=#$P,RYX;6Q02P$"% ,4    " "IDF5:'3F;^6L#  !1
M$   &@              @($,C@( >&PO=V]R:W-H965T<R]S:&5E=#$P-"YX
M;6Q02P$"% ,4    " "IDF5:2J" &$H#  !Z#P  &@              @(&O
MD0( >&PO=V]R:W-H965T<R]S:&5E=#$P-2YX;6Q02P$"% ,4    " "IDF5:
M9N G?QP"  "Q!   &@              @($QE0( >&PO=V]R:W-H965T<R]S
M:&5E=#$P-BYX;6Q02P$"% ,4    " "IDF5:21E&)FP#  #*%0  #0
M        @ &%EP( >&PO<W1Y;&5S+GAM;%!+ 0(4 Q0    ( *F295J7BKL<
MP    !,"   +              "  1R; @!?<F5L<R\N<F5L<U!+ 0(4 Q0
M   ( *F295H3:*^610<  "A%   /              "  06< @!X;"]W;W)K
M8F]O:RYX;6Q02P$"% ,4    " "IDF5:XPVLQ_\"  !%/@  &@
M    @ %WHP( >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4
M" "IDF5:H4#6(VT"  #_.P  $P              @ &NI@( 6T-O;G1E;G1?
@5'EP97-=+GAM;%!+!08     <@!R %P?  !,J0(    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>123
<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>124
<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>127
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>316</ContextCount>
  <ElementCount>422</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>86</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>00090 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>00100 - Statement - CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedBalanceSheets</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>10101 - Disclosure - Description of the Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureDescriptionOfBusiness</Role>
      <ShortName>Description of the Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>10201 - Disclosure - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentation</Role>
      <ShortName>Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>10301 - Disclosure - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitions</Role>
      <ShortName>Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>10401 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>10501 - Disclosure - Trade Accounts Receivable</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivable</Role>
      <ShortName>Trade Accounts Receivable</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>10601 - Disclosure - Other Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivables</Role>
      <ShortName>Other Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>10701 - Disclosure - Prepaid Expenses and Other</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther</Role>
      <ShortName>Prepaid Expenses and Other</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>10801 - Disclosure - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipment</Role>
      <ShortName>Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>10901 - Disclosure - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssets</Role>
      <ShortName>Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>11001 - Disclosure - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureGoodwill</Role>
      <ShortName>Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>11101 - Disclosure - Accrued Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAccruedLiabilities</Role>
      <ShortName>Accrued Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>11201 - Disclosure - Long-Term Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLongTermDebt</Role>
      <ShortName>Long-Term Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>11301 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>11401 - Disclosure - Commitments, Contingencies and Guarantees</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees</Role>
      <ShortName>Commitments, Contingencies and Guarantees</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>11501 - Disclosure - Share Capital</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapital</Role>
      <ShortName>Share Capital</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>11601 - Disclosure - Earnings Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShare</Role>
      <ShortName>Earnings Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>11701 - Disclosure - Stock-Based Compensation Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlans</Role>
      <ShortName>Stock-Based Compensation Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>11801 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>12001 - Disclosure - Other Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherCharges</Role>
      <ShortName>Other Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>12101 - Disclosure - Supplemental Cash Flow Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation</Role>
      <ShortName>Supplemental Cash Flow Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>12201 - Disclosure - Segmented Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformation</Role>
      <ShortName>Segmented Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>20202 - Disclosure - Basis of Presentation (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies</Role>
      <ShortName>Basis of Presentation (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>30203 - Disclosure - Basis of Presentation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentationTables</Role>
      <ShortName>Basis of Presentation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureBasisOfPresentation</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>30303 - Disclosure - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsTables</Role>
      <ShortName>Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAcquisitions</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>30403 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureFairValueMeasurements</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>30503 - Disclosure - Trade Accounts Receivable (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables</Role>
      <ShortName>Trade Accounts Receivable (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureTradeAccountsReceivable</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>30603 - Disclosure - Other Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivablesTables</Role>
      <ShortName>Other Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureOtherReceivables</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>30703 - Disclosure - Prepaid Expenses and Other (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables</Role>
      <ShortName>Prepaid Expenses and Other (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>30803 - Disclosure - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables</Role>
      <ShortName>Property and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosurePropertyAndEquipment</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>30903 - Disclosure - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssetsTables</Role>
      <ShortName>Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureIntangibleAssets</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>31003 - Disclosure - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureGoodwillTables</Role>
      <ShortName>Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureGoodwill</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>31103 - Disclosure - Accrued Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables</Role>
      <ShortName>Accrued Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAccruedLiabilities</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>31303 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureLeases</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>31503 - Disclosure - Share Capital (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapitalTables</Role>
      <ShortName>Share Capital (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureShareCapital</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>31603 - Disclosure - Earnings Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShareTables</Role>
      <ShortName>Earnings Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureEarningsPerShare</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>31703 - Disclosure - Stock-Based Compensation Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables</Role>
      <ShortName>Stock-Based Compensation Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureStockBasedCompensationPlans</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>31803 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureIncomeTaxes</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>32003 - Disclosure - Other Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesTables</Role>
      <ShortName>Other Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureOtherCharges</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>32103 - Disclosure - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables</Role>
      <ShortName>Supplemental Cash Flow Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>32203 - Disclosure - Segmented Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationTables</Role>
      <ShortName>Segmented Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureSegmentedInformation</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>40201 - Disclosure - Basis of Presentation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentationDetails</Role>
      <ShortName>Basis of Presentation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureBasisOfPresentationTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>40301 - Disclosure - Acquisitions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsDetails</Role>
      <ShortName>Acquisitions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAcquisitionsTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails</Role>
      <ShortName>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails</Role>
      <ShortName>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails</Role>
      <ShortName>Acquisitions - Acquired Intangible Assets Useful Lives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails</Role>
      <ShortName>Acquisitions - Pro Forma Results of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>40401 - Disclosure - Fair Value Measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureFairValueMeasurementsTables</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails</Role>
      <ShortName>Fair Value Measurements - Derivative instruments at fair value (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements - Changes in fair value measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>40501 - Disclosure - Trade Accounts Receivable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails</Role>
      <ShortName>Trade Accounts Receivable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables</ParentRole>
      <Position>60</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails</Role>
      <ShortName>Trade Accounts Receivable - Trade receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails</Role>
      <ShortName>Trade Accounts Receivable - Provision for credit losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>40601 - Disclosure - Other Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivablesDetails</Role>
      <ShortName>Other Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureOtherReceivablesTables</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>40602 - Disclosure - Other Receivables - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails</Role>
      <ShortName>Other Receivables - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>40701 - Disclosure - Prepaid Expenses and Other (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails</Role>
      <ShortName>Prepaid Expenses and Other (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>40801 - Disclosure - Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails</Role>
      <ShortName>Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>40901 - Disclosure - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssetsDetails</Role>
      <ShortName>Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureIntangibleAssetsTables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>40902 - Disclosure - Intangible Assets - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails</Role>
      <ShortName>Intangible Assets - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>41001 - Disclosure - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureGoodwillDetails</Role>
      <ShortName>Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureGoodwillTables</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>41101 - Disclosure - Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails</Role>
      <ShortName>Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>41201 - Disclosure - Long-Term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLongTermDebtDetails</Role>
      <ShortName>Long-Term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureLongTermDebt</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>41301 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureLeasesTables</ParentRole>
      <Position>72</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>41302 - Disclosure - Leases - Components of operating lease expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails</Role>
      <ShortName>Leases - Components of operating lease expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails</Role>
      <ShortName>Leases - Maturities of operating lease liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails</Role>
      <ShortName>Commitments, Contingencies and Guarantees (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees</ParentRole>
      <Position>75</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>41501 - Disclosure - Share Capital (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapitalDetails</Role>
      <ShortName>Share Capital (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureShareCapitalTables</ParentRole>
      <Position>76</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails</Role>
      <ShortName>Share Capital - Common Shares Outstanding (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>41601 - Disclosure - Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShareDetails</Role>
      <ShortName>Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureEarningsPerShareTables</ParentRole>
      <Position>78</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails</Role>
      <ShortName>Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>41705 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Nonvested Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>41706 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails</Role>
      <ShortName>Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails</Role>
      <ShortName>Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails</Role>
      <ShortName>Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails</Role>
      <ShortName>Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails</Role>
      <ShortName>Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails</Role>
      <ShortName>Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>41807 - Disclosure - Income Taxes - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income Taxes - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>94</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>97</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>42001 - Disclosure - Other Charges - Components of Other Charges (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails</Role>
      <ShortName>Other Charges - Components of Other Charges (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>42002 - Disclosure - Other Charges - Restructuring Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails</Role>
      <ShortName>Other Charges - Restructuring Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>42003 - Disclosure - Other Charges - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails</Role>
      <ShortName>Other Charges - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails</Role>
      <ShortName>Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>101</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>42201 - Disclosure - Segmented Information - Breakdown of Measures of Profit (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails</Role>
      <ShortName>Segmented Information - Breakdown of Measures of Profit (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>102</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>42202 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails</Role>
      <ShortName>Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>42203 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails</Role>
      <ShortName>Segmented Information - Segmented Revenue by Revenue Type (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>104</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>42204 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails</Role>
      <ShortName>Segmented Information - Long-lived Assets by Geographical Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>105</Position>
    </Report>
    <Report instance="dsgx-20250131x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>42205 - Disclosure - Segmented Information - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails</Role>
      <ShortName>Segmented Information - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>106</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>dsgx-20250131.xsd</File>
    <File>dsgx-20250131_cal.xml</File>
    <File>dsgx-20250131_def.xml</File>
    <File>dsgx-20250131_lab.xml</File>
    <File>dsgx-20250131_pre.xml</File>
    <File doctype="6-K" isDefinitelyFs="true" isUsgaap="true" original="dsgx-20250131x6k.htm">dsgx-20250131x6k.htm</File>
    <File doctype="6-K" isDefinitelyFs="true" isUsgaap="true" original="dsgx-20250131xex99d1.htm">dsgx-20250131xex99d1.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>dsgx-20250131xex99d1001.jpg</File>
    <File>dsgx-20250131xex99d1002.jpg</File>
    <File>dsgx-20250131xex99d1029.jpg</File>
    <File>dsgx-20250131xex99d1030.jpg</File>
    <File>dsgx-20250131xex99d1033.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1311">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="9">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>130
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "dsgx-20250131x6k.htm dsgx-20250131xex99d1.htm": {
   "nsprefix": "dsgx",
   "nsuri": "http://www.descartes.com/20250131",
   "dts": {
    "schema": {
     "local": [
      "dsgx-20250131.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/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://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd",
      "https://xbrl.sec.gov/country/2023/country-2023.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "dsgx-20250131_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "dsgx-20250131_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "dsgx-20250131_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "dsgx-20250131_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "dsgx-20250131x6k.htm",
      "dsgx-20250131xex99d1.htm"
     ]
    }
   },
   "keyStandard": 364,
   "keyCustom": 58,
   "axisStandard": 26,
   "axisCustom": 0,
   "memberStandard": 38,
   "memberCustom": 42,
   "hidden": {
    "total": 21,
    "http://fasb.org/us-gaap/2023": 11,
    "http://www.descartes.com/20250131": 3,
    "http://xbrl.sec.gov/dei/2023": 7
   },
   "contextCount": 316,
   "entityCount": 1,
   "segmentCount": 86,
   "elementCount": 632,
   "unitCount": 7,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 1311,
    "http://xbrl.sec.gov/dei/2023": 9
   },
   "report": {
    "R1": {
     "role": "http://www.descartes.com/role/DocumentDocumentAndEntityInformation",
     "longName": "00090 - Document - Document And Entity Information",
     "shortName": "Document And Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131x6k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131x6k.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
     "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals",
     "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:CommonStockSharesIssued",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:CommonStockSharesIssued",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations",
     "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
     "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals",
     "longName": "00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity",
     "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_pdvd9opf0EmTA4vY3rwJwA",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_pdvd9opf0EmTA4vY3rwJwA",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
     "longName": "00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
     "longName": "10101 - Disclosure - Description of the Business",
     "shortName": "Description of the Business",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentation",
     "longName": "10201 - Disclosure - Basis of Presentation",
     "shortName": "Basis of Presentation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitions",
     "longName": "10301 - Disclosure - Acquisitions",
     "shortName": "Acquisitions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurements",
     "longName": "10401 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivable",
     "longName": "10501 - Disclosure - Trade Accounts Receivable",
     "shortName": "Trade Accounts Receivable",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.descartes.com/role/DisclosureOtherReceivables",
     "longName": "10601 - Disclosure - Other Receivables",
     "shortName": "Other Receivables",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:OtherReceivablesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:OtherReceivablesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther",
     "longName": "10701 - Disclosure - Prepaid Expenses and Other",
     "shortName": "Prepaid Expenses and Other",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
     "longName": "10801 - Disclosure - Property and Equipment",
     "shortName": "Property and Equipment",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssets",
     "longName": "10901 - Disclosure - Intangible Assets",
     "shortName": "Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.descartes.com/role/DisclosureGoodwill",
     "longName": "11001 - Disclosure - Goodwill",
     "shortName": "Goodwill",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.descartes.com/role/DisclosureAccruedLiabilities",
     "longName": "11101 - Disclosure - Accrued Liabilities",
     "shortName": "Accrued Liabilities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.descartes.com/role/DisclosureLongTermDebt",
     "longName": "11201 - Disclosure - Long-Term Debt",
     "shortName": "Long-Term Debt",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.descartes.com/role/DisclosureLeases",
     "longName": "11301 - Disclosure - Leases",
     "shortName": "Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
     "longName": "11401 - Disclosure - Commitments, Contingencies and Guarantees",
     "shortName": "Commitments, Contingencies and Guarantees",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.descartes.com/role/DisclosureShareCapital",
     "longName": "11501 - Disclosure - Share Capital",
     "shortName": "Share Capital",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShare",
     "longName": "11601 - Disclosure - Earnings Per Share",
     "shortName": "Earnings Per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
     "longName": "11701 - Disclosure - Stock-Based Compensation Plans",
     "shortName": "Stock-Based Compensation Plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxes",
     "longName": "11801 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
     "longName": "11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.descartes.com/role/DisclosureOtherCharges",
     "longName": "12001 - Disclosure - Other Charges",
     "shortName": "Other Charges",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation",
     "longName": "12101 - Disclosure - Supplemental Cash Flow Information",
     "shortName": "Supplemental Cash Flow Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "29",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformation",
     "longName": "12201 - Disclosure - Segmented Information",
     "shortName": "Segmented Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "30",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies",
     "longName": "20202 - Disclosure - Basis of Presentation (Policies)",
     "shortName": "Basis of Presentation (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "31",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
     "longName": "30203 - Disclosure - Basis of Presentation (Tables)",
     "shortName": "Basis of Presentation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "32",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsTables",
     "longName": "30303 - Disclosure - Acquisitions (Tables)",
     "shortName": "Acquisitions (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "33",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
     "longName": "30403 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables",
     "longName": "30503 - Disclosure - Trade Accounts Receivable (Tables)",
     "shortName": "Trade Accounts Receivable (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
     "longName": "30603 - Disclosure - Other Receivables (Tables)",
     "shortName": "Other Receivables (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:OtherReceivablesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:OtherReceivablesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables",
     "longName": "30703 - Disclosure - Prepaid Expenses and Other (Tables)",
     "shortName": "Prepaid Expenses and Other (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
     "longName": "30803 - Disclosure - Property and Equipment (Tables)",
     "shortName": "Property and Equipment (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
     "longName": "30903 - Disclosure - Intangible Assets (Tables)",
     "shortName": "Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.descartes.com/role/DisclosureGoodwillTables",
     "longName": "31003 - Disclosure - Goodwill (Tables)",
     "shortName": "Goodwill (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
     "longName": "31103 - Disclosure - Accrued Liabilities (Tables)",
     "shortName": "Accrued Liabilities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.descartes.com/role/DisclosureLeasesTables",
     "longName": "31303 - Disclosure - Leases (Tables)",
     "shortName": "Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.descartes.com/role/DisclosureShareCapitalTables",
     "longName": "31503 - Disclosure - Share Capital (Tables)",
     "shortName": "Share Capital (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
     "longName": "31603 - Disclosure - Earnings Per Share (Tables)",
     "shortName": "Earnings Per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "44",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
     "longName": "31703 - Disclosure - Stock-Based Compensation Plans (Tables)",
     "shortName": "Stock-Based Compensation Plans (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "45",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
     "longName": "31803 - Disclosure - Income Taxes (Tables)",
     "shortName": "Income Taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "46",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
     "longName": "31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "47",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.descartes.com/role/DisclosureOtherChargesTables",
     "longName": "32003 - Disclosure - Other Charges (Tables)",
     "shortName": "Other Charges (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "48",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables",
     "longName": "32103 - Disclosure - Supplemental Cash Flow Information (Tables)",
     "shortName": "Supplemental Cash Flow Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "49",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
     "longName": "32203 - Disclosure - Segmented Information (Tables)",
     "shortName": "Segmented Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "50",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
     "longName": "40201 - Disclosure - Basis of Presentation (Details)",
     "shortName": "Basis of Presentation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ForeignCurrencyTransactionGainLossBeforeTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ForeignCurrencyTransactionGainLossBeforeTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
     "longName": "40301 - Disclosure - Acquisitions (Details)",
     "shortName": "Acquisitions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA",
      "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
     "longName": "40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)",
     "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
     "longName": "40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)",
     "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ",
      "name": "us-gaap:CashAcquiredFromAcquisition",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ",
      "name": "us-gaap:CashAcquiredFromAcquisition",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
     "longName": "40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)",
     "shortName": "Acquisitions - Acquired Intangible Assets Useful Lives (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_dp8aGXVQEEKS4bMfY0OyLQ",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_dp8aGXVQEEKS4bMfY0OyLQ",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
     "longName": "40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)",
     "shortName": "Acquisitions - Pro Forma Results of Operations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
     "longName": "40401 - Disclosure - Fair Value Measurements (Details)",
     "shortName": "Fair Value Measurements (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "dsgx:DerivativeInstrumentSharesOfCommonStockHeld",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "dsgx:DerivativeInstrumentCommonSharesHeldPerShare",
      "unitRef": "Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails",
     "longName": "40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details)",
     "shortName": "Fair Value Measurements - Derivative instruments at fair value (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
     "longName": "40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)",
     "shortName": "Fair Value Measurements - Changes in fair value measurements (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_jKEXqqdgBE6xB_nreRZepw",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
     "longName": "40501 - Disclosure - Trade Accounts Receivable (Details)",
     "shortName": "Trade Accounts Receivable (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
     "longName": "40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details)",
     "shortName": "Trade Accounts Receivable - Trade receivables (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:UnbilledReceivablesCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:UnbilledReceivablesCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R62": {
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
     "longName": "40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details)",
     "shortName": "Trade Accounts Receivable - Provision for credit losses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R63": {
     "role": "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
     "longName": "40601 - Disclosure - Other Receivables (Details)",
     "shortName": "Other Receivables (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:OtherAssetsCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "dsgx:OtherReceivablesTableTextBlock",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:OtherAssetsCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "dsgx:OtherReceivablesTableTextBlock",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails",
     "longName": "40602 - Disclosure - Other Receivables - Additional information (Details)",
     "shortName": "Other Receivables - Additional information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R65": {
     "role": "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails",
     "longName": "40701 - Disclosure - Prepaid Expenses and Other (Details)",
     "shortName": "Prepaid Expenses and Other (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:PrepaidExpenseCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
       "dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:PrepaidExpenseCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
       "dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails",
     "longName": "40801 - Disclosure - Property and Equipment (Details)",
     "shortName": "Property and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R67": {
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails",
     "longName": "40901 - Disclosure - Intangible Assets (Details)",
     "shortName": "Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
     "longName": "40902 - Disclosure - Intangible Assets - Additional information (Details)",
     "shortName": "Intangible Assets - Additional information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:FiniteLivedIntangibleAssetsNet",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R69": {
     "role": "http://www.descartes.com/role/DisclosureGoodwillDetails",
     "longName": "41001 - Disclosure - Goodwill (Details)",
     "shortName": "Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "us-gaap:Goodwill",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA",
      "name": "us-gaap:Goodwill",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R70": {
     "role": "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
     "longName": "41101 - Disclosure - Accrued Liabilities (Details)",
     "shortName": "Accrued Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R71": {
     "role": "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
     "longName": "41201 - Disclosure - Long-Term Debt (Details)",
     "shortName": "Long-Term Debt (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R72": {
     "role": "http://www.descartes.com/role/DisclosureLeasesDetails",
     "longName": "41301 - Disclosure - Leases (Details)",
     "shortName": "Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R73": {
     "role": "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails",
     "longName": "41302 - Disclosure - Leases - Components of operating lease expense (Details)",
     "shortName": "Leases - Components of operating lease expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OperatingLeaseCost",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:OperatingLeaseCost",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
     "longName": "41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)",
     "shortName": "Leases - Maturities of operating lease liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R75": {
     "role": "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
     "longName": "41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)",
     "shortName": "Commitments, Contingencies and Guarantees (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://www.descartes.com/role/DisclosureShareCapitalDetails",
     "longName": "41501 - Disclosure - Share Capital (Details)",
     "shortName": "Share Capital (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ProceedsFromStockOptionsExercised",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ProceedsFromStockOptionsExercised",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R77": {
     "role": "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
     "longName": "41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)",
     "shortName": "Share Capital - Common Shares Outstanding (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "us-gaap:CommonStockSharesOutstanding",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "us-gaap:CommonStockSharesIssued",
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ",
      "name": "us-gaap:CommonStockSharesOutstanding",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R78": {
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
     "longName": "41601 - Disclosure - Earnings Per Share (Details)",
     "shortName": "Earnings Per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_XlMeR2DDHU-DnDfvB6AZqQ",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_XlMeR2DDHU-DnDfvB6AZqQ",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R79": {
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
     "longName": "41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)",
     "shortName": "Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q",
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R80": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
     "longName": "41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)",
     "shortName": "Stock-Based Compensation Plans - Additional information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R81": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails",
     "longName": "41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)",
     "shortName": "Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R82": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails",
     "longName": "41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)",
     "shortName": "Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
      "unitRef": "Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
      "unitRef": "Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R83": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
     "longName": "41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)",
     "shortName": "Stock-Based Compensation Plans - Summary of Option Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R84": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
     "longName": "41705 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)",
     "shortName": "Stock-Based Compensation Plans - Summary of Nonvested Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R85": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
     "longName": "41706 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)",
     "shortName": "Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "85",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R86": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
     "longName": "41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)",
     "shortName": "Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "86",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
      "unitRef": "Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R87": {
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails",
     "longName": "41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)",
     "shortName": "Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "87",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "dsgx:CRSUAwardsOutstandingNumber",
      "unitRef": "Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:CRSUAwardsWeightedAverageContractualLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R88": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
     "longName": "41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)",
     "shortName": "Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "88",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R89": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
     "longName": "41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)",
     "shortName": "Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "89",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:CurrentIncomeTaxExpenseBenefit",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg",
      "name": "us-gaap:CurrentIncomeTaxExpenseBenefit",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R90": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
     "longName": "41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)",
     "shortName": "Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "90",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R91": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
     "longName": "41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)",
     "shortName": "Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "91",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R92": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails",
     "longName": "41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)",
     "shortName": "Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "92",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:OperatingLossCarryforwards",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:OperatingLossCarryforwards",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R93": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails",
     "longName": "41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)",
     "shortName": "Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "93",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA",
      "name": "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R94": {
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
     "longName": "41807 - Disclosure - Income Taxes - Additional information (Details)",
     "shortName": "Income Taxes - Additional information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "94",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:IncomeBeforeTaxesPercent",
      "unitRef": "Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:IncomeBeforeTaxesPercent",
      "unitRef": "Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R95": {
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
     "longName": "41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "95",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R96": {
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails",
     "longName": "41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs - Performance Obligations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "96",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R97": {
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails",
     "longName": "41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details)",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs - Contract Costs (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "97",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:CapitalizedContractCostNet",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:CapitalizedContractCostNet",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R98": {
     "role": "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
     "longName": "42001 - Disclosure - Other Charges - Components of Other Charges (Details)",
     "shortName": "Other Charges - Components of Other Charges (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "98",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R99": {
     "role": "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
     "longName": "42002 - Disclosure - Other Charges - Restructuring Provision (Details)",
     "shortName": "Other Charges - Restructuring Provision (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "99",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2024_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7kb5wGJr-U2vLu3NNbphCg",
      "name": "us-gaap:RestructuringReserve",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2024_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7kb5wGJr-U2vLu3NNbphCg",
      "name": "us-gaap:RestructuringReserve",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R100": {
     "role": "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
     "longName": "42003 - Disclosure - Other Charges - Additional information (Details)",
     "shortName": "Other Charges - Additional information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "100",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7gQhquhRE0-RMmApKKBsRQ",
      "name": "us-gaap:RestructuringAndRelatedCostCostIncurredToDate1",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7gQhquhRE0-RMmApKKBsRQ",
      "name": "us-gaap:RestructuringAndRelatedCostCostIncurredToDate1",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R101": {
     "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
     "longName": "42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)",
     "shortName": "Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "101",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R102": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
     "longName": "42201 - Disclosure - Segmented Information - Breakdown of Measures of Profit (Details)",
     "shortName": "Segmented Information - Breakdown of Measures of Profit (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "102",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:Depreciation",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "dsgx:ShareBasedCompensationExpenseAndRelatedTaxes",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R103": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
     "longName": "42202 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)",
     "shortName": "Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "103",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_US_nxGVLzjITEuUmjVwxFftrw",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R104": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
     "longName": "42203 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)",
     "shortName": "Segmented Information - Segmented Revenue by Revenue Type (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "104",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_ServiceMember_TQjDDrEHpES7HgWwuIv6fg",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "unique": true
     }
    },
    "R105": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
     "longName": "42204 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)",
     "shortName": "Segmented Information - Long-lived Assets by Geographical Location (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "105",
     "firstAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:NoncurrentAssets",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g",
      "name": "us-gaap:NoncurrentAssets",
      "unitRef": "Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    },
    "R106": {
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails",
     "longName": "42205 - Disclosure - Segmented Information - Additional information (Details)",
     "shortName": "Segmented Information - Additional information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "106",
     "firstAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "Unit_Standard_segment_2f_V29RRlkaFYgf_PufsGw",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "Unit_Standard_segment_2f_V29RRlkaFYgf_PufsGw",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "dsgx-20250131xex99d1.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Presentation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "terseLabel": "Accrued Liabilities",
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Payable, Current",
        "terseLabel": "Accounts payable",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r797"
     ]
    },
    "dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent the amount of effects of foreign exchange currency movement against the allowance.",
        "label": "Accounts Receivable Allowance for Credit Loss Effects of Foreign Exchange",
        "verboseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Schedule of changes in provision for credit losses",
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r838"
     ]
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableGrossCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails": {
       "parentTag": "us-gaap_AccountsReceivableNetCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, before Allowance for Credit Loss, Current",
        "terseLabel": "Trade accounts receivable",
        "documentation": "Amount, before 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": [
      "r223",
      "r321",
      "r322",
      "r767"
     ]
    },
    "us-gaap_AccountsReceivableNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableNetAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts receivable (net)",
        "terseLabel": "Accounts receivable (net)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "terseLabel": "Trade (Note 5)",
        "totalLabel": "Trade 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": [
      "r321",
      "r322"
     ]
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedIncomeTaxesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Income Taxes, Current",
        "terseLabel": "Income taxes payable",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations."
       }
      }
     },
     "auth_ref": [
      "r130",
      "r185"
     ]
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedIncomeTaxesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Income Taxes, Noncurrent",
        "terseLabel": "INCOME TAXES PAYABLE",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent."
       }
      }
     },
     "auth_ref": [
      "r131",
      "r185"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Liabilities, Current",
        "terseLabel": "Accrued liabilities (Note 11)",
        "totalLabel": "Total",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedProfessionalFeesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedProfessionalFeesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Professional Fees, Current",
        "terseLabel": "Accrued professional fees",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "terseLabel": "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": [
      "r83",
      "r215",
      "r625"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "terseLabel": "Accumulated other comprehensive loss",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r52",
      "r141",
      "r224",
      "r621",
      "r656",
      "r657"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated Other Comprehensive Income [Member]",
        "terseLabel": "Accumulated other comprehensive income (loss)",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r26",
      "r52",
      "r556",
      "r559",
      "r601",
      "r652",
      "r653",
      "r819",
      "r820",
      "r821",
      "r830",
      "r831",
      "r832"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional Paid in Capital, Common Stock",
        "terseLabel": "Additional paid-in capital",
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital."
       }
      }
     },
     "auth_ref": [
      "r136"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional Paid In Capital [Member]",
        "terseLabel": "Additional paid-in capital",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r499",
      "r500",
      "r501",
      "r666",
      "r830",
      "r831",
      "r832",
      "r895",
      "r918"
     ]
    },
    "dsgx_AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The adjusted portion of profit or loss for the period, before interests, income taxes, depreciation and amortization which is attributable to the entity for the reporting period.",
        "label": "Adjusted Earnings Before Interest, Tax, Depreciation And Amortization",
        "terseLabel": "Adjusted EBITDA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "terseLabel": "Stock-based compensation expense (Note 17)",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r99",
      "r461"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Adjustments to reconcile net income to cash provided by operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_AerospaceSoftwareDevelopmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "AerospaceSoftwareDevelopmentsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Aerospace Software Developments.",
        "label": "Aerospace Software Developments [Member]",
        "terseLabel": "ASD"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_AfterTaxYear2026Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "AfterTaxYear2026Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to after tax year 2026.",
        "label": "Thereafter",
        "terseLabel": "Thereafter"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-based compensation expense",
        "terseLabel": "Effect on net income",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r494",
      "r506"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails": {
       "parentTag": "us-gaap_AccountsReceivableNetCurrent",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "negatedLabel": "Less: Provision for credit losses",
        "periodEndLabel": "Ending Balance",
        "periodStartLabel": "Beginning Balance",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r225",
      "r323",
      "r327"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedLabel": "Write-offs charged against the provision",
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance."
       }
      }
     },
     "auth_ref": [
      "r329"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization Of Intangible Assets",
        "terseLabel": "Amortization of intangible assets",
        "verboseLabel": "Amortization of intangible assets",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r77",
      "r81"
     ]
    },
    "dsgx_AmountsRecoverableFromFundsHeldInEscrow": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "AmountsRecoverableFromFundsHeldInEscrow",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recoverable from funds held In escrow related to acquisitions.",
        "label": "Amounts Recoverable from Funds Held in Escrow",
        "verboseLabel": "Amounts Recoverable from Funds Held in Escrow - Net working capital adjustments receivable from acquisitions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
        "terseLabel": "Antidilutive securities excluded from computation of earnings per share, amount (in shares)",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r281"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r61"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities, Name [Domain]",
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r61"
     ]
    },
    "dsgx_AsiaPacificIncomeTaxAuthorityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "AsiaPacificIncomeTaxAuthorityMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information related to Asia Pacific income tax authority",
        "label": "Asia Pacific Region",
        "terseLabel": "Asia Pacific"
       }
      }
     },
     "auth_ref": []
    },
    "srt_AsiaPacificMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "AsiaPacificMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asia Pacific",
        "terseLabel": "Asia Pacific"
       }
      }
     },
     "auth_ref": [
      "r920",
      "r921",
      "r922",
      "r923"
     ]
    },
    "us-gaap_AssetUnderConstructionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetUnderConstructionMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset under Construction [Member]",
        "terseLabel": "Assets under construction",
        "documentation": "Asset in process of being built."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets",
        "totalLabel": "TOTAL ASSETS",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events."
       }
      }
     },
     "auth_ref": [
      "r183",
      "r219",
      "r253",
      "r291",
      "r306",
      "r312",
      "r324",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r550",
      "r552",
      "r571",
      "r617",
      "r699",
      "r797",
      "r809",
      "r860",
      "r861",
      "r904"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "ASSETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Current",
        "totalLabel": "TOTAL CURRENT ASSETS",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events."
       }
      }
     },
     "auth_ref": [
      "r210",
      "r230",
      "r253",
      "r324",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r550",
      "r552",
      "r571",
      "r797",
      "r860",
      "r861",
      "r904"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT ASSETS",
        "terseLabel": "CURRENT ASSETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r465",
      "r466",
      "r467",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493"
     ]
    },
    "dsgx_BaseAnnualFeePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BaseAnnualFeePercent",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The base annual fee percentage required for Directors participating in a share-based compensation plan.",
        "label": "Base Annual Fee Percent",
        "verboseLabel": "Base annual fee, percent"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_BaseShelfProspectus2024Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BaseShelfProspectus2024Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the 2024 Base Shelf Prospectus.",
        "label": "Base Shelf Prospectus 2024 [Member]",
        "terseLabel": "2024 Base Shelf Prospectus"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "terseLabel": "Basis of Presentation",
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_BoxtopTechnologiesLimitedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BoxtopTechnologiesLimitedMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to BoxTop Technologies Limited.",
        "label": "BoxTop Technologies Limited [Member]",
        "terseLabel": "BoxTop"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Acquiree [Domain]",
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree."
       }
      }
     },
     "auth_ref": [
      "r544",
      "r790",
      "r791"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r107",
      "r544",
      "r790",
      "r791"
     ]
    },
    "dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business acquisition cost of acquired entity working capital adjustments.",
        "label": "Business Acquisition Cost Of Acquired Entity Working Capital Adjustments",
        "terseLabel": "Net working capital adjustments (receivable) / payable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [Line Items]",
        "terseLabel": "Acquisition",
        "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": [
      "r544"
     ]
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionProFormaEarningsPerShareBasic",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Pro Forma Earnings Per Share, Basic",
        "verboseLabel": "Basic (in dollars per share)",
        "documentation": "The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period."
       }
      }
     },
     "auth_ref": [
      "r813",
      "r814"
     ]
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionProFormaEarningsPerShareDiluted",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Pro Forma Earnings Per Share, Diluted",
        "verboseLabel": "Diluted (in dollars per share)",
        "documentation": "The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period."
       }
      }
     },
     "auth_ref": [
      "r813",
      "r814"
     ]
    },
    "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionProFormaInformationTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Pro Forma Information [Table Text Block]",
        "terseLabel": "Schedule of business acquisition on pro forma information",
        "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate."
       }
      }
     },
     "auth_ref": [
      "r813",
      "r814"
     ]
    },
    "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionsProFormaNetIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Pro Forma Net Income (Loss)",
        "verboseLabel": "Net income",
        "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542"
     ]
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Pro Forma Revenue",
        "verboseLabel": "Revenue",
        "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542"
     ]
    },
    "us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationAcquiredReceivablesEstimatedUncollectible",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Acquired Receivables Estimated Uncollectible",
        "terseLabel": "Estimate of contractual cash flows not expected to be collected",
        "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the best estimate at the acquisition date of the contractual cash flows not expected to be collected, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables."
       }
      }
     },
     "auth_ref": [
      "r110"
     ]
    },
    "us-gaap_BusinessCombinationAcquiredReceivablesFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationAcquiredReceivablesFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Acquired Receivable, Fair Value",
        "verboseLabel": "Fair value of acquired trade receivables",
        "documentation": "Fair value of acquired receivable from business combination, excluding certain loans and debt securities acquired in transfer."
       }
      }
     },
     "auth_ref": [
      "r543"
     ]
    },
    "us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationAcquiredReceivablesGrossContractualAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Acquired Receivables Gross Contractual Amount",
        "verboseLabel": "Gross contractual amount of trade receivables acquired",
        "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the gross contractual amounts receivable, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables."
       }
      }
     },
     "auth_ref": [
      "r109"
     ]
    },
    "us-gaap_BusinessCombinationAcquisitionRelatedCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationAcquisitionRelatedCosts",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "parentTag": "us-gaap_OtherCostAndExpenseOperating",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Acquisition Related Costs",
        "verboseLabel": "Acquisition-related costs",
        "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities."
       }
      }
     },
     "auth_ref": [
      "r104"
     ]
    },
    "dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BusinessCombinationAgreementsPerformanceBasedConsiderationMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information of the consideration payable by the entity that is contingent upon the satisfaction of the performance criteria as agreed upon under the business combination agreements.",
        "label": "Business Combination Agreements, Performance Based Consideration [Member]",
        "terseLabel": "Business combination agreements"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationAndAssetAcquisitionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquisitions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Consideration Transferred",
        "totalLabel": "Purchase price consideration",
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r5",
      "r21"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contingent consideration",
        "terseLabel": "Contingent consideration",
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r5",
      "r115",
      "r547"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "parentTag": "us-gaap_OtherCostAndExpenseOperating",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "terseLabel": "Contingent consideration accretion and adjustments",
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement."
       }
      }
     },
     "auth_ref": [
      "r549",
      "r825"
     ]
    },
    "dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.",
        "label": "Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets",
        "terseLabel": "Period for revenue performance targets",
        "verboseLabel": "Period for revenue performance targets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High",
        "terseLabel": "Maximum potential performance-based contingent consideration",
        "verboseLabel": "Maximum potential performance-based contingent consideration",
        "documentation": "For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid."
       }
      }
     },
     "auth_ref": [
      "r117"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration, Liability",
        "terseLabel": "Contingent consideration",
        "verboseLabel": "Accrued contingent acquisition consideration",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r116",
      "r548"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationContingentConsiderationLiabilityMeasurementInput",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration, Liability, Measurement Input",
        "terseLabel": "Estimated fair value consideration percentage",
        "documentation": "Value of input used to measure contingent consideration liability from business combination."
       }
      }
     },
     "auth_ref": [
      "r568"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Acquisitions",
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable)."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r545"
     ]
    },
    "us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual",
        "verboseLabel": "Amount of net income recognized",
        "documentation": "This element represents the amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement for the reporting period."
       }
      }
     },
     "auth_ref": [
      "r106"
     ]
    },
    "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Pro Forma Information Revenue Of Acquire Since Acquisition Date Actual",
        "verboseLabel": "Amount of revenue recognized",
        "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period."
       }
      }
     },
     "auth_ref": [
      "r106"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Recognized Identifiable Asset Acquired And Liability Assumed Operating Lease Obligation",
        "negatedLabel": "Lease obligations",
        "documentation": "Amount of lease obligation assumed in business combination."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets",
        "terseLabel": "Current assets, excluding cash acquired",
        "documentation": "Amount of assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities",
        "negatedLabel": "Current liabilities",
        "documentation": "Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Deferred Revenue",
        "negatedLabel": "Deferred revenue",
        "documentation": "Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred income tax asset",
        "terseLabel": "Deferred income tax asset",
        "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Deferred Tax Liabilities",
        "negatedLabel": "Deferred income tax liability",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-lived intangible assets acquired",
        "terseLabel": "Finite-lived intangible assets acquired",
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r108",
      "r111"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Net [Abstract]",
        "terseLabel": "Allocated to:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other long-term assets",
        "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of right-of-use assets acquired at the acquisition date.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Right-of-use Assets",
        "terseLabel": "Right-of-use assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "terseLabel": "Goodwill",
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed."
       }
      }
     },
     "auth_ref": [
      "r111"
     ]
    },
    "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.",
        "label": "Business Combination Recognized Identifiable Tangible Assets Acquired And Liabilities Assumed Net",
        "totalLabel": "Net tangible assets (liabilities) assumed"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationsPolicy",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combinations Policy [Policy Text Block]",
        "terseLabel": "Business combinations",
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy."
       }
      }
     },
     "auth_ref": [
      "r103"
     ]
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Description and Basis of Presentation [Text Block]",
        "terseLabel": "Description of the Business",
        "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": [
      "r128",
      "r157",
      "r158"
     ]
    },
    "country_CA": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "CA",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Canada",
        "terseLabel": "Canada"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardNonvestedNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of nonvested CRSU awards.",
        "label": "Non-vested, CRSU (in shares)",
        "terseLabel": "Non-vested, CRSU (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardNonvestedWeightedAverageContractualLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardNonvestedWeightedAverageContractualLife",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average remaining contractual life of nonvested CRSU awards.",
        "label": "Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)",
        "terseLabel": "Non-vested, Weighted-Average Remaining Contractual Life, CRSU (years)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardsForfeitedInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to CRSU awards forfeited in period.",
        "label": "Number of Units Forfeited, CRSU (in shares)",
        "negatedLabel": "Number of Units Forfeited, CRSU (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardsGrantsInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of CRSU grants in period.",
        "label": "Number of Units Granted, CRSU (in shares)",
        "terseLabel": "Number of Units Granted, CRSU (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardsOutstandingNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of CRSU awards outstanding.",
        "label": "Number of Units Outstanding, CRSU (in shares)",
        "periodEndLabel": "Number of Units Outstanding, CRSU (in shares), Ending",
        "periodStartLabel": "Number of Units Outstanding, CRSU (in shares),Beginning"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardsVestedAndSettledInCash": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardsVestedAndSettledInCash",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of CRSU awards vested and settled in cash.",
        "label": "Number of Units Vested and settled in cash, CRSU (in shares)",
        "negatedLabel": "Number of Units Vested and settled in cash, CRSU (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CRSUAwardsWeightedAverageContractualLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CRSUAwardsWeightedAverageContractualLife",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average remaining contractual life of CRSU awards.",
        "label": "Weighted-Average Remaining Contractual Life, CRSU (Year)",
        "terseLabel": "Weighted-Average Remaining Contractual Life, CRSU (years)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CanadaOrUsPrimeRateBaOrLiborMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CanadaOrUsPrimeRateBaOrLiborMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the Canada or US prime rate, Bankers' Acceptance (BA) or London Interbank Offered Rate (LIBOR).",
        "label": "Canada or US Prime Rate, BA, or LIBOR [Member]",
        "terseLabel": "CDOR"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalizedContractCostAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalizedContractCostAmortization",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Capitalized Contract Cost, Amortization",
        "terseLabel": "Capitalized contract cost, amortization",
        "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer."
       }
      }
     },
     "auth_ref": [
      "r336"
     ]
    },
    "us-gaap_CapitalizedContractCostNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalizedContractCostNet",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsContractCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Capitalized Contract Cost, Net",
        "terseLabel": "Capitalized contract cost, net, total",
        "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer."
       }
      }
     },
     "auth_ref": [
      "r335"
     ]
    },
    "us-gaap_CashAcquiredFromAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAcquiredFromAcquisition",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Acquired from Acquisition",
        "terseLabel": "Cash acquired",
        "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business)."
       }
      }
     },
     "auth_ref": [
      "r54"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "terseLabel": "Cash",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r213",
      "r765"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "terseLabel": "Cash",
        "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": [
      "r58"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations",
        "periodEndLabel": "Cash, end of year",
        "periodStartLabel": "Cash, beginning of year",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r154",
      "r249"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "Increase (decrease) in cash",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r154"
     ]
    },
    "us-gaap_CashFlowSupplementalDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashFlowSupplementalDisclosuresTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow, Supplemental Disclosures [Text Block]",
        "terseLabel": "Supplemental Cash Flow Information",
        "documentation": "The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period."
       }
      }
     },
     "auth_ref": [
      "r152"
     ]
    },
    "dsgx_CashSettledRestrictedShareUnitMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CashSettledRestrictedShareUnitMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cash-Settled Restricted Share Unit [Member]",
        "label": "Cash-Settled Restricted Share Unit [Member]",
        "terseLabel": "Cash-settled restricted share unit"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CashSettledRestrictedShareUnitsCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CashSettledRestrictedShareUnitsCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash settled restricted share units compensation expense.",
        "label": "Cash Settled Restricted Share Units Compensation Expense",
        "terseLabel": "Cash settled restricted share units compensation expense"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash settled restricted share units nonvested, total compensation cost not yet recognized.",
        "label": "Cash Settled Restricted Share Units Non-vested Total Compensation Cost Not Yet Recognized",
        "terseLabel": "Unrecognized aggregate liability for the unvested CRSUs"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CashSettledRestrictedShareUnitsVestingPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CashSettledRestrictedShareUnitsVestingPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Cash Settled Restricted Share Units Vesting Period",
        "verboseLabel": "Cash settled restricted share units, vesting period (Year)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfStockLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Stock [Line Items]",
        "terseLabel": "Share Capital",
        "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": [
      "r220",
      "r221",
      "r222",
      "r286",
      "r411",
      "r412",
      "r413",
      "r415",
      "r418",
      "r423",
      "r425",
      "r660",
      "r661",
      "r662",
      "r663",
      "r782",
      "r811",
      "r826"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies",
        "terseLabel": "COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)",
        "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": [
      "r47",
      "r125",
      "r619",
      "r686"
     ]
    },
    "dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CommitmentsContingenciesAndGuaranteesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "N/A",
        "label": "Commitments, Contingencies and Guarantees"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsContingenciesAndGuaranteesTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments Contingencies and Guarantees [Text Block]",
        "terseLabel": "Commitments, Contingencies and Guarantees",
        "documentation": "The entire disclosure for commitments, contingencies, and guarantees."
       }
      }
     },
     "auth_ref": [
      "r164",
      "r165",
      "r855"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock [Member]",
        "terseLabel": "Common shares",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r800",
      "r801",
      "r802",
      "r804",
      "r805",
      "r806",
      "r807",
      "r830",
      "r831",
      "r895",
      "r915",
      "r918"
     ]
    },
    "us-gaap_CommonStockSharesAuthorizedUnlimited": {
     "xbrltype": "authorizedUnlimitedItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorizedUnlimited",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Authorized, Unlimited [Fixed List]",
        "terseLabel": "Common shares - Shares authorized (in shares)",
        "documentation": "Indicates that the number of common shares permitted to be issued by an entity's charter and bylaws is unlimited. The acceptable value is \"Unlimited\"."
       }
      }
     },
     "auth_ref": [
      "r48"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Issued",
        "terseLabel": "Common shares - Shares issued (in shares)",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r135"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Outstanding",
        "periodEndLabel": "Balance, end of year (in shares)",
        "periodStartLabel": "Balance, beginning of year (in shares)",
        "terseLabel": "Common shares - Shares outstanding (in shares)",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r135",
      "r687",
      "r705",
      "r918",
      "r919"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Value, Issued",
        "terseLabel": "Common shares - unlimited shares authorized; Shares issued and outstanding totaled 85,605,969 at January 31, 2025 (January 31, 2024 - 85,183,455)",
        "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": [
      "r135",
      "r620",
      "r797"
     ]
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "totalLabel": "Comprehensive income",
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r235",
      "r237",
      "r244",
      "r613",
      "r630"
     ]
    },
    "us-gaap_ComputerEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComputerEquipmentMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer Equipment [Member]",
        "terseLabel": "Computer equipment and software",
        "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation, Policy [Policy Text Block]",
        "terseLabel": "Basis 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": [
      "r118",
      "r770"
     ]
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable",
        "terseLabel": "Schedule of the changes in the contract assets balance",
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability."
       }
      }
     },
     "auth_ref": [
      "r863"
     ]
    },
    "dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForForeignExchange",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) to the contract asset during the period attributable to the effect of movements in foreign exchange.",
        "label": "dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange",
        "terseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ContractWithCustomerAssetIncreaseDecreaseForRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForRevenue",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the contract asset recognized as revenue during the period, net of amounts transferred to trade receivables.",
        "label": "Contract With Customer Asset Increase Decrease for Revenue",
        "terseLabel": "Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetNet",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r427",
      "r429",
      "r448"
     ]
    },
    "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetReclassifiedToReceivable",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, Reclassified to Receivable",
        "negatedLabel": "Transfers to trade receivables from contract assets",
        "documentation": "Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional."
       }
      }
     },
     "auth_ref": [
      "r784"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Liability",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r427",
      "r428",
      "r448"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increases from business combinations, net",
        "terseLabel": "Increases from business combinations, net",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination."
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign exchange.",
        "label": "Effect of movements in foreign exchange",
        "terseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.",
        "label": "Deferral of revenue",
        "terseLabel": "Deferral of revenue"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-term",
        "terseLabel": "Long-term",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r427",
      "r428",
      "r448"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recognition of previously deferred revenue",
        "negatedLabel": "Recognition of previously deferred revenue",
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due."
       }
      }
     },
     "auth_ref": [
      "r449"
     ]
    },
    "us-gaap_CostMaintenance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostMaintenance",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost, Maintenance",
        "verboseLabel": "SaaS software and maintenance",
        "documentation": "Cost of maintenance incurred and directly related to good produced and service rendered."
       }
      }
     },
     "auth_ref": [
      "r822"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost Of Goods And Services Sold",
        "terseLabel": "COST OF REVENUES (exclusive of amortization presented separately below)",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r149",
      "r608"
     ]
    },
    "dsgx_CostOfRevenuesAndNetworkCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CostOfRevenuesAndNetworkCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate cost of goods produced and sold and services rendered including network charges  during the reporting period",
        "label": "Cost Of Revenues And Network Charges",
        "verboseLabel": "Cost of revenues and network charges (exclusive of other items presented separately)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of Sales [Member]",
        "terseLabel": "Cost of revenues",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostsAndExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostsAndExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs and Expenses",
        "totalLabel": "Total expenses",
        "documentation": "Total costs of sales and operating expenses for the period."
       }
      }
     },
     "auth_ref": [
      "r146"
     ]
    },
    "us-gaap_CostsAndExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostsAndExpensesAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs And Expenses [Abstract]",
        "terseLabel": "EXPENSES"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.",
        "label": "dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals",
        "verboseLabel": "Costs to obtain a contract with a customer, period of benefit including renewals (Year)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Facility [Domain]",
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current income tax expense",
        "verboseLabel": "Current",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r179",
      "r529",
      "r535",
      "r829"
     ]
    },
    "dsgx_CurrentIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "CurrentIncomeTaxRateContinuingOperations",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Current Income Tax Rate Continuing Operations",
        "terseLabel": "Percentage of current income tax expense"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer Relationships [Member]",
        "terseLabel": "Customer agreements and relationships",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r114"
     ]
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebt"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Text Block]",
        "terseLabel": "Long-Term Debt",
        "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": [
      "r166",
      "r251",
      "r383",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r399",
      "r406",
      "r407",
      "r409"
     ]
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r129",
      "r130",
      "r184",
      "r187",
      "r255",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r390",
      "r395",
      "r396",
      "r397",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r587",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r827"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "terseLabel": "Interest rates under the revolving operating portion",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [Line Items]",
        "terseLabel": "Long-Term Debt",
        "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": [
      "r255",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r390",
      "r395",
      "r396",
      "r397",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r408",
      "r587",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r827"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r255",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r390",
      "r395",
      "r396",
      "r397",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r587",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r827"
     ]
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Long-term Debt Instruments [Table]",
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r89",
      "r92",
      "r121",
      "r122",
      "r124",
      "r126",
      "r168",
      "r169",
      "r255",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r390",
      "r395",
      "r396",
      "r397",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r408",
      "r587",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r827"
     ]
    },
    "us-gaap_DebtInstrumentTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentTerm",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Term",
        "terseLabel": "Maturity term (year)",
        "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Compensation Arrangement with Individual, Allocated Share-Based Compensation Expense",
        "terseLabel": "Deferred share based compensation expense",
        "documentation": "Amount of expense recognized from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments), awarded to key employees or individuals. Excludes amount related to plans that cover generally all employees (for example, but not limited to, qualified pension plans)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent",
        "terseLabel": "Deferred compensation share-based arrangements, liability, current and noncurrent",
        "documentation": "Aggregate carrying value as of the balance sheet date of the liabilities for stock option plans and other equity-based compensation arrangements."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]",
        "terseLabel": "Schedule of prepaid expenses and other",
        "documentation": "Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Assets, Net",
        "verboseLabel": "DEFERRED INCOME TAXES",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r513",
      "r514"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Expense (Benefit)",
        "terseLabel": "Deferred",
        "verboseLabel": "Deferred tax expense (recovery)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r179",
      "r204",
      "r534",
      "r535",
      "r829"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Gross",
        "negatedTotalLabel": "Total deferred income tax liabilities",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences."
       }
      }
     },
     "auth_ref": [
      "r132",
      "r133",
      "r186",
      "r523"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Liabilities, Net",
        "verboseLabel": "DEFERRED INCOME TAXES",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r513",
      "r514",
      "r618"
     ]
    },
    "us-gaap_DeferredRevenueCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredRevenueCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Revenue, Current",
        "terseLabel": "Deferred revenue (Note 19)",
        "verboseLabel": "Current",
        "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": [
      "r816"
     ]
    },
    "us-gaap_DeferredRevenueNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredRevenueNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Revenue, Noncurrent",
        "terseLabel": "DEFERRED REVENUE (Note 19)",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r817"
     ]
    },
    "dsgx_DeferredShareUnitLiabilityNumberOfCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredShareUnitLiabilityNumberOfCommonShares",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of common shares for which there is a deferred share unit liability.",
        "label": "Deferred Share Unit Liability, Number of Common Shares (in shares)",
        "terseLabel": "DSU liability, number of common shares (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredShareUnitPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredShareUnitPlanMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A plan with deferred share units.",
        "label": "Deferred Share Unit Plan [Member]",
        "terseLabel": "DSU",
        "verboseLabel": "Deferred share unit plan"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredShareUnitsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredShareUnitsGrantsInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of deferred share units granted in period.",
        "label": "Deferred Share Units Grants In Period (in shares)",
        "terseLabel": "Deferred share units grants in period (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The deferred share units nonvested, total compensation cost not yet recognized.",
        "label": "Deferred Share Units Non-vested Total Compensation Cost Not Yet Recognized",
        "terseLabel": "Unrecognized aggregate liability for the unvested DSUs"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredShareUnitsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredShareUnitsOutstandingNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of outstanding deferred share units as of the reported date.",
        "label": "Deferred Share Units Outstanding Number (in shares)",
        "terseLabel": "Deferred share units outstanding number (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredShareUnitsRedeemedAndSettledInCash": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredShareUnitsRedeemedAndSettledInCash",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of deferred share units redeemed and settled in cash.",
        "label": "Deferred Share Units Redeemed and Settled in Cash (in shares)",
        "terseLabel": "Deferred share units redeemed and settled in cash (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredTaxAssetsAccumulatedLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredTaxAssetsAccumulatedLosses",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to accumulated losses.",
        "label": "Deferred Tax Assets, Accumulated Losses",
        "terseLabel": "Accumulated losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Gross",
        "totalLabel": "Total deferred income tax assets",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r524"
     ]
    },
    "dsgx_DeferredTaxAssetsLiabilitiesNet1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredTaxAssetsLiabilitiesNet1",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.",
        "label": "Deferred Tax Assets Liabilities Net1",
        "terseLabel": "Net deferred income taxes, net of valuation allowance"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DeferredTaxAssetsNetBeforeValuationAllowance",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax assets.",
        "label": "Deferred Tax Assets Net Before Valuation Allowance",
        "terseLabel": "Net deferred income taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Difference between tax and accounting basis of property and equipment",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and development expenditures and tax credits",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r102",
      "r894"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
        "verboseLabel": "Amount before allocation of valuation allowances of deferred tax asset",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation."
       }
      }
     },
     "auth_ref": [
      "r102",
      "r894"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued liabilities not currently deductible",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from accrued liabilities."
       }
      }
     },
     "auth_ref": [
      "r102",
      "r894"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Valuation Allowance",
        "negatedLabel": "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": [
      "r525"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
        "negatedLabel": "Difference between tax and accounting basis of intangible assets",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill."
       }
      }
     },
     "auth_ref": [
      "r102",
      "r894"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesOther",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Other",
        "negatedLabel": "Temporary difference on equity derivative and related party debt",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other."
       }
      }
     },
     "auth_ref": [
      "r102",
      "r894"
     ]
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation",
        "terseLabel": "Depreciation",
        "verboseLabel": "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": [
      "r17",
      "r82"
     ]
    },
    "dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of accumulated depreciation of property, plant and equipment useful life.",
        "label": "Depreciation of Property, Plant and Equipment Useful Life [Table Text Block]",
        "terseLabel": "Schedule of depreciation of property, plant and equipment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Asset, Current, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative asset classified as current."
       }
      }
     },
     "auth_ref": [
      "r554"
     ]
    },
    "us-gaap_DerivativeAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Asset",
        "terseLabel": "Equity derivative contracts",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r231",
      "r232",
      "r570",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r693",
      "r694",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r769",
      "r802",
      "r916"
     ]
    },
    "us-gaap_DerivativeAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Asset, Current",
        "terseLabel": "Equity derivative contracts (Note 4)",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset, expected to be settled within one year or normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r231"
     ]
    },
    "dsgx_DerivativeInstrumentCommonSharesHeldPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DerivativeInstrumentCommonSharesHeldPerShare",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The per share amount of common shares held by certain derivative instruments entered into by the company.",
        "label": "Derivative Instrument, Common Shares Held, Per Share",
        "terseLabel": "Derivative, common shares weighted average price (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_DerivativeInstrumentSharesOfCommonStockHeld": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DerivativeInstrumentSharesOfCommonStockHeld",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares held by certain derivative instruments entered into by the company.",
        "label": "Derivative Instrument, Shares of Common Stock Held",
        "terseLabel": "Equity derivatives, number of common shares held (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosures [Line Items]",
        "terseLabel": "Fair Value Measurements",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosures [Table]",
        "documentation": "Disclosure of information about derivatives and hedging activities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DevelopedTechnologyRightsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Developed Technology Rights [Member]",
        "terseLabel": "Existing technology",
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property."
       }
      }
     },
     "auth_ref": [
      "r181"
     ]
    },
    "dsgx_DirectorsAndOfficersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "DirectorsAndOfficersMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Titles of individuals' stock options.",
        "label": "Directors and Officers [Member]",
        "terseLabel": "Director's and officer's"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement [Text Block]",
        "terseLabel": "Stock-Based Compensation Plans",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r459",
      "r464",
      "r495",
      "r496",
      "r498",
      "r793"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-Based Compensation Plans"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentInformationLineItems",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Information [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentInformationTable",
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Information [Table]",
        "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Domestic Tax Authority [Member]",
        "terseLabel": "Domestic tax authority",
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EMEAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EMEAMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Europe, Middle-East and Africa",
        "terseLabel": "Europe, Middle-East and Africa",
        "documentation": "Regions of Europe, Middle East and Africa."
       }
      }
     },
     "auth_ref": [
      "r920",
      "r921",
      "r922",
      "r923"
     ]
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareAbstract",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share",
        "terseLabel": "EARNINGS PER SHARE (Note 16)",
        "verboseLabel": "Earnings per share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earning Per Share (Basic)",
        "terseLabel": "Basic (in $ per share)",
        "verboseLabel": "Earning per share, Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r245",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r270",
      "r272",
      "r278",
      "r279",
      "r280",
      "r284",
      "r563",
      "r564",
      "r614",
      "r631",
      "r772"
     ]
    },
    "us-gaap_EarningsPerShareBasicLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasicLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]",
        "terseLabel": "Earnings Per Share",
        "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": [
      "r272",
      "r276",
      "r278"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earning Per Share (Diluted)",
        "terseLabel": "Diluted (in $ per share)",
        "verboseLabel": "Earning per share, Diluted",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r245",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r272",
      "r278",
      "r279",
      "r280",
      "r284",
      "r563",
      "r564",
      "r614",
      "r631",
      "r772"
     ]
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "terseLabel": "Earnings 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": [
      "r61",
      "r62"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Text Block]",
        "terseLabel": "Earnings Per Share",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r281",
      "r282",
      "r283"
     ]
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations",
        "terseLabel": "Effect of foreign exchange rate changes on cash",
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r898"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
        "terseLabel": "Combined basic Canadian statutory rates",
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)."
       }
      }
     },
     "auth_ref": [
      "r254",
      "r516",
      "r536"
     ]
    },
    "dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .",
        "label": "dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions",
        "terseLabel": "Increase (decrease) in accruals for uncertain tax positions"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_EmeaIncomeTaxAuthorityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "EmeaIncomeTaxAuthorityMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents income tax authority for EMEA.",
        "label": "EMEA Region",
        "terseLabel": "EMEA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee-related Liabilities, Current",
        "terseLabel": "Accrued compensation and benefits",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
        "terseLabel": "Total unrecognized compensation cost",
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r497"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
        "terseLabel": "Weighted average period (year)",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r497"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
        "terseLabel": "Tax benefit realized in connection with stock options exercised",
        "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r201"
     ]
    },
    "us-gaap_EmployeeSeveranceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeSeveranceMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Severance [Member]",
        "terseLabel": "Workforce Reduction",
        "documentation": "Termination of an employee associated with exit from or disposal of business activities or restructurings pursuant to a plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement, Option [Member]",
        "terseLabel": "Stock options",
        "verboseLabel": "Employee Stock Options",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r810"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r810"
     ]
    },
    "dsgx_EquipmentInstalledWithCustomersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "EquipmentInstalledWithCustomersMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to equipment installed with customers.",
        "label": "Equipment Installed With Customers [Member]",
        "terseLabel": "Equipment installed with customers"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquipmentMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment [Member]",
        "terseLabel": "Equipment installed with customers",
        "documentation": "Tangible personal property used to produce goods and services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Capital"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r207",
      "r239",
      "r240",
      "r241",
      "r256",
      "r257",
      "r258",
      "r260",
      "r266",
      "r268",
      "r285",
      "r325",
      "r326",
      "r426",
      "r499",
      "r500",
      "r501",
      "r530",
      "r531",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r562",
      "r578",
      "r580",
      "r581",
      "r582",
      "r583",
      "r585",
      "r601",
      "r652",
      "r653",
      "r654",
      "r666",
      "r727"
     ]
    },
    "dsgx_ExistingTechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ExistingTechnologyMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information about existing technology.",
        "label": "Existing Technology [member]",
        "terseLabel": "Existing technologies"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ExpensesAndRecoveriesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ExpensesAndRecoveriesNet",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses (recovery) related to operating expenses in the operation statement.",
        "label": "Expenses and Recoveries, Net",
        "terseLabel": "Expense (recovery)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FacilityClosingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FacilityClosingMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Facility Closing [Member]",
        "terseLabel": "Office Closures",
        "documentation": "Closing of a facility associated with exit from or disposal of business activities or restructurings pursuant to a plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurement Inputs and Valuation Techniques [Line Items]",
        "terseLabel": "Fair Value Measurements",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurement Inputs and Valuation Techniques [Table]",
        "documentation": "Disclosure of information about input and valuation technique used to measure fair value and change in valuation approach and technique for each separate class of asset and liability measured on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]",
        "terseLabel": "Fair value measurements in Level 3 of the fair value inputs",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]",
        "documentation": "Schedule of information required and determined to be provided for purposes of reconciling beginning and ending balances of fair value measurements of assets using significant unobservable inputs (level 3). Such reconciliation, separately presenting changes during the period, at a minimum, may include, but is not limited to: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income, and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r120"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r397",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r566",
      "r602",
      "r603",
      "r604",
      "r778",
      "r779",
      "r787",
      "r788",
      "r789"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurements"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r565"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "terseLabel": "Level 2",
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets."
       }
      }
     },
     "auth_ref": [
      "r397",
      "r452",
      "r457",
      "r566",
      "r603",
      "r778",
      "r779",
      "r787",
      "r788",
      "r789"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "terseLabel": "Level 3",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r397",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r566",
      "r604",
      "r778",
      "r779",
      "r787",
      "r788",
      "r789"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of changes in fair value measurements",
        "documentation": "Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r120"
     ]
    },
    "dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) From Effect Of Movements In Foreign Exchange",
        "terseLabel": "Effect of movements in foreign exchange and other"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings",
        "terseLabel": "Charges through profit or loss",
        "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3)."
       }
      }
     },
     "auth_ref": [
      "r569"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases",
        "terseLabel": "Increase from acquisitions",
        "documentation": "Amount of purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements",
        "terseLabel": "Cash payments",
        "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "periodEndLabel": "Balance at the end",
        "periodStartLabel": "Balance at the beginning",
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r397",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r602",
      "r603",
      "r604",
      "r778",
      "r779",
      "r787",
      "r788",
      "r789"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "terseLabel": "Financial instruments",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r37"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "terseLabel": "Acquired intangible assets estimated useful lives (Year)",
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "terseLabel": "Accumulated amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r217",
      "r355"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
        "terseLabel": "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": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
        "terseLabel": "2026",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "terseLabel": "2030",
        "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": [
      "r161"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "2029",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "2028",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "2027",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "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": [
      "r353",
      "r354",
      "r355",
      "r356",
      "r609",
      "r610"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Gross",
        "terseLabel": "Cost",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r160",
      "r610"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Intangible Assets",
        "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": [
      "r609"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r80"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Net",
        "verboseLabel": "Intangible assets, net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r160",
      "r609"
     ]
    },
    "dsgx_Fiscal2024RestructuringPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "Fiscal2024RestructuringPlanMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the Fiscal 2024 Restructuring Plan.",
        "label": "Fiscal 2024 Restructuring Plan [Member]",
        "terseLabel": "Fiscal 2024 Restructuring Plan"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_Fiscal2025AcquisitionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "Fiscal2025AcquisitionsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to Fiscal 2025 Acquisitions.",
        "label": "Fiscal 2025 Acquisitions [Member]",
        "terseLabel": "Fiscal 2025 acquisitions"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_Fiscal2025RestructuringPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "Fiscal2025RestructuringPlanMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information relating to the entity's  Fiscal 2025 restructuring plan.",
        "label": "Fiscal 2025 Restructuring Plan [Member]",
        "terseLabel": "Fiscal 2025 Restructuring Plan"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCountryMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign Tax Authority [Member]",
        "terseLabel": "Foreign tax authority",
        "documentation": "Designated tax departments of governments entitled to levy and collect income taxes from the entity outside the entity's country of domicile."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gain (Loss), Foreign Currency Transaction, before Tax",
        "verboseLabel": "Foreign currency re-measurement loss",
        "documentation": "Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction."
       }
      }
     },
     "auth_ref": [
      "r573",
      "r574",
      "r575",
      "r577",
      "r724"
     ]
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "terseLabel": "Foreign currency translation",
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy."
       }
      }
     },
     "auth_ref": [
      "r572"
     ]
    },
    "dsgx_FoxtrotMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "FoxtrotMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent the member information pertaining to Foxtrot.",
        "label": "Foxtrot [Member]",
        "terseLabel": "Foxtrot"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Furniture and Fixtures [Member]",
        "terseLabel": "Furniture and fixtures",
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "General and administrative expense",
        "terseLabel": "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": [
      "r151",
      "r709"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GeneralAndAdministrativeExpenseMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "General and Administrative Expense [Member]",
        "terseLabel": "General and administrative expenses",
        "verboseLabel": "General and administrative",
        "documentation": "Primary financial statement caption encompassing general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r145"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill.",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of period",
        "verboseLabel": "GOODWILL (Note 10)",
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r216",
      "r338",
      "r611",
      "r776",
      "r797",
      "r840",
      "r847"
     ]
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAcquiredDuringPeriod",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill, Acquired During Period",
        "terseLabel": "Acquisition of goodwill",
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination."
       }
      }
     },
     "auth_ref": [
      "r342",
      "r776"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Goodwill and intangible assets",
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r75"
     ]
    },
    "dsgx_GoodwillDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "GoodwillDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Goodwill Disclosure [Abstract]",
        "label": "Goodwill"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwill"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill Disclosure [Text Block]",
        "terseLabel": "Goodwill",
        "documentation": "The entire disclosure for goodwill."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r340",
      "r350",
      "r776"
     ]
    },
    "us-gaap_GoodwillImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillImpairmentLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill, Impairment Loss",
        "verboseLabel": "Goodwill impairment loss",
        "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r339",
      "r345",
      "r351",
      "r776"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Line Items]",
        "terseLabel": "Goodwill",
        "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": [
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r351",
      "r776"
     ]
    },
    "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillTranslationAndPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill, Translation and Purchase Accounting Adjustments",
        "terseLabel": "Adjustments on account of foreign exchange",
        "documentation": "Amount of increase (decrease) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r839"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross Profit",
        "totalLabel": "GROSS MARGIN",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r253",
      "r291",
      "r305",
      "r311",
      "r314",
      "r324",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r571",
      "r774",
      "r860"
     ]
    },
    "dsgx_GroundcloudMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "GroundcloudMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent the member information pertaining to GroundCloud.",
        "label": "GroundCloud",
        "terseLabel": "GroundCloud"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Impairment of long-lived assets",
        "documentation": "Disclosure of accounting policy for the impairment and disposal of long-lived assets including goodwill and other intangible assets."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_IncomeBeforeTaxesPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "IncomeBeforeTaxesPercent",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Income tax expense expressed as a percentage of income before taxes.",
        "label": "Income Before Taxes Percent",
        "terseLabel": "Percentage of income before income taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "terseLabel": "Income before income taxes",
        "totalLabel": "INCOME BEFORE INCOME TAXES",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r143",
      "r189",
      "r291",
      "r305",
      "r311",
      "r314",
      "r615",
      "r627",
      "r774"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF OPERATIONS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location [Axis]",
        "documentation": "Information by location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r357",
      "r361",
      "r710"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location [Domain]",
        "documentation": "Location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r361",
      "r710"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority [Axis]",
        "documentation": "Information by tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority [Domain]",
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityNameAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority, Name [Axis]",
        "documentation": "Information by name of taxing authority."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityNameDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority, Name [Domain]",
        "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": []
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_IncomeTaxDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "IncomeTaxDisclosureLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "N/A",
        "label": "Income Tax Disclosure [Line Items]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_IncomeTaxDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "IncomeTaxDisclosureTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "N/A",
        "label": "Income Tax Disclosure [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes.",
        "terseLabel": "Income Taxes",
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information."
       }
      }
     },
     "auth_ref": [
      "r254",
      "r508",
      "r517",
      "r521",
      "r527",
      "r532",
      "r537",
      "r538",
      "r539",
      "r665"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Expense (Benefit)",
        "terseLabel": "Income tax expense",
        "totalLabel": "Income tax expense",
        "verboseLabel": "Income tax expense",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r192",
      "r205",
      "r267",
      "r268",
      "r299",
      "r515",
      "r533",
      "r633"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "INCOME TAX EXPENSE (RECOVERY) (Note 18)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax, Policy [Policy Text Block]",
        "terseLabel": "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": [
      "r238",
      "r511",
      "r512",
      "r521",
      "r522",
      "r526",
      "r528",
      "r659"
     ]
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
        "terseLabel": "Valuation allowance",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationChangeInEnactedTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Amount",
        "terseLabel": "Effect of rate changes on current year timing differences",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in the income tax rates."
       }
      }
     },
     "auth_ref": [
      "r510",
      "r516"
     ]
    },
    "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount",
        "terseLabel": "Effect of differences between Canadian and foreign tax rates",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
        "terseLabel": "Income tax expense based on the above rates",
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount",
        "terseLabel": "Permanent differences",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization."
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_IncomeTaxReconciliationOtherAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationOtherAdjustments",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Amount",
        "terseLabel": "Other, including foreign exchange",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments."
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationPriorYearIncomeTaxes",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Prior Year Income Taxes, Amount",
        "terseLabel": "Change in estimates relating to prior periods",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationTaxCreditsResearch",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount",
        "negatedLabel": "Research tax credits",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit."
       }
      }
     },
     "auth_ref": [
      "r892"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes Paid, Net",
        "terseLabel": "Cash paid during the year for income taxes",
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes."
       }
      }
     },
     "auth_ref": [
      "r59"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Accounts Payable",
        "verboseLabel": "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": [
      "r16"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Trade 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": [
      "r16"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Accrued Liabilities",
        "terseLabel": "Accrued liabilities",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue",
        "terseLabel": "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": [
      "r761"
     ]
    },
    "us-gaap_IncreaseDecreaseInIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInIncomeTaxes",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Income Taxes",
        "verboseLabel": "Income taxes payable",
        "documentation": "The increase (decrease) during the reporting period in the amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes, and in deferred and other tax liabilities and assets."
       }
      }
     },
     "auth_ref": [
      "r825"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 7.0
      },
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Capital",
        "negatedLabel": "Changes in operating assets and liabilities (Note 21)",
        "negatedTotalLabel": "Changes in operating assets and liabilities",
        "documentation": "The increase (decrease) during the reporting period of all assets and liabilities used in operating activities."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "dsgx_IncreaseDecreaseInOperatingLeaseLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "IncreaseDecreaseInOperatingLeaseLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of increase (decrease) in operating lease liabilities.",
        "label": "Increase (Decrease) in Operating Lease Liabilities",
        "verboseLabel": "Operating leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherReceivables",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Other Receivables",
        "negatedLabel": "Other accounts receivable",
        "documentation": "Amount of increase (decrease) in receivables classified as other."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedTerseLabel": "Prepaid expenses and other",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dilutive effect of employee stock options (in shares)",
        "terseLabel": "Dilutive effect of employee stock options (in shares)",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r273",
      "r274",
      "r275",
      "r280",
      "r463"
     ]
    },
    "dsgx_IndefiniteYearMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "IndefiniteYearMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to indefinite tax year.",
        "label": "Indefinite Year [Member]",
        "terseLabel": "Indefinite"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Intangible Assets",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r352"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "terseLabel": "INTANGIBLE ASSETS, NET (Note 9)",
        "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": [
      "r76",
      "r79"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsNetExcludingGoodwillAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense",
        "negatedLabel": "INTEREST EXPENSE",
        "negatedTerseLabel": "Interest expense",
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r123",
      "r191",
      "r242",
      "r295",
      "r586",
      "r711",
      "r808",
      "r917"
     ]
    },
    "us-gaap_InternalRevenueServiceIRSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InternalRevenueServiceIRSMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States.",
        "terseLabel": "United States",
        "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory, Net",
        "terseLabel": "Inventory",
        "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": [
      "r227",
      "r766",
      "r797"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory, Policy [Policy Text Block]",
        "terseLabel": "Inventory",
        "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": [
      "r193",
      "r212",
      "r226",
      "r330",
      "r331",
      "r332",
      "r607",
      "r771"
     ]
    },
    "dsgx_InvestmentAndOtherIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "InvestmentAndOtherIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment income and other income.",
        "label": "Investment and Other Income",
        "terseLabel": "INVESTMENT AND OTHER INCOME",
        "verboseLabel": "Investment and other income"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LaborAndRelatedExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LaborAndRelatedExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Labor and Related Expense",
        "verboseLabel": "Headcount-related costs, including stock compensation expense",
        "documentation": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit."
       }
      }
     },
     "auth_ref": [
      "r823"
     ]
    },
    "us-gaap_LeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease, Cost",
        "totalLabel": "Total operating lease cost",
        "documentation": "Amount of lease cost recognized by lessee for lease contract."
       }
      }
     },
     "auth_ref": [
      "r593",
      "r796"
     ]
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseCostTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease, Cost [Table Text Block]",
        "terseLabel": "Schedule of components of operating lease expense",
        "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": [
      "r901"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leasehold Improvements [Member]",
        "terseLabel": "Leasehold improvements",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r163"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Leases [Policy Text Block]",
        "terseLabel": "Leases",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r592"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Schedule of maturities for operating lease liabilities",
        "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": [
      "r902"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total lease payments",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "terseLabel": "2026",
        "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": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "terseLabel": "2030",
        "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": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2029",
        "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": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2028",
        "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": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2027",
        "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": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "negatedLabel": "Less: imputed interest",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r600"
     ]
    },
    "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseRemainingLeaseTerm",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Remaining Lease Term",
        "terseLabel": "Operating lease remaining lease term (year)",
        "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r899"
     ]
    },
    "us-gaap_LesseeOperatingLeaseRenewalTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseRenewalTerm",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Renewal Term",
        "terseLabel": "Operating lease renewal term (year)",
        "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r900"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases",
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r588"
     ]
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LettersOfCreditOutstandingAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Letters of Credit Outstanding, Amount",
        "terseLabel": "Letters of credit outstanding",
        "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities",
        "totalLabel": "TOTAL LIABILITIES",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r253",
      "r324",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r551",
      "r552",
      "r553",
      "r571",
      "r685",
      "r773",
      "r809",
      "r860",
      "r904",
      "r905"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity",
        "totalLabel": "TOTAL LIABILITIES AND SHAREHOLDERS' EQUITY",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r188",
      "r623",
      "r797",
      "r828",
      "r837",
      "r897"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "verboseLabel": "LIABILITIES AND SHAREHOLDERS' EQUITY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Current",
        "totalLabel": "TOTAL CURRENT LIABILITIES",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r44",
      "r211",
      "r253",
      "r324",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r551",
      "r552",
      "r553",
      "r571",
      "r797",
      "r860",
      "r904",
      "r905"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT LIABILITIES",
        "verboseLabel": "CURRENT LIABILITIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "periodEndLabel": "Liability, end of year",
        "periodStartLabel": "Liability, beginning of year",
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_LicenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LicenseMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "License",
        "documentation": "Right to use intangible asset. Intangible asset includes, but is not limited to, patent, copyright, technology, manufacturing process, software or trademark."
       }
      }
     },
     "auth_ref": [
      "r865"
     ]
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Line of Credit",
        "terseLabel": "Long-term line of credit drawn amount",
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r187",
      "r913"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "terseLabel": "Line of credit facility",
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r41"
     ]
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "terseLabel": "Available for use",
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)."
       }
      }
     },
     "auth_ref": [
      "r41"
     ]
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage",
        "terseLabel": "Percentage of undrawn amounts (in percentage)",
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]",
        "terseLabel": "Trade Accounts Receivable",
        "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r835"
     ]
    },
    "dsgx_LocalzPtyLtdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "LocalzPtyLtdMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent the member information pertaining to Localz Pty Ltd.",
        "label": "Localz",
        "terseLabel": "Localz Pty Ltd"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency Nature [Axis]",
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r368",
      "r369",
      "r370",
      "r373",
      "r856",
      "r857"
     ]
    },
    "us-gaap_LossContingenciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingenciesLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingencies [Line Items]",
        "terseLabel": "Commitments, Contingencies and Guarantees",
        "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": [
      "r368",
      "r369",
      "r370",
      "r373",
      "r856",
      "r857"
     ]
    },
    "us-gaap_LossContingenciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingenciesTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingencies [Table]",
        "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations."
       }
      }
     },
     "auth_ref": [
      "r368",
      "r369",
      "r370",
      "r373",
      "r856",
      "r857"
     ]
    },
    "us-gaap_LossContingencyNatureDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingencyNatureDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Nature [Domain]",
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability."
       }
      }
     },
     "auth_ref": [
      "r368",
      "r369",
      "r370",
      "r373",
      "r856",
      "r857"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]",
        "terseLabel": "Maximum"
       }
      }
     },
     "auth_ref": [
      "r369",
      "r370",
      "r371",
      "r372",
      "r458",
      "r606",
      "r651",
      "r677",
      "r678",
      "r732",
      "r734",
      "r736",
      "r737",
      "r745",
      "r759",
      "r760",
      "r775",
      "r782",
      "r792",
      "r799",
      "r862",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "us-gaap_MeasurementInputDiscountRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MeasurementInputDiscountRateMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input, Discount Rate [Member]",
        "terseLabel": "Discount rate",
        "documentation": "Measurement input using interest rate to determine present value of future cash flows."
       }
      }
     },
     "auth_ref": [
      "r896"
     ]
    },
    "us-gaap_MeasurementInputLongTermRevenueGrowthRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MeasurementInputLongTermRevenueGrowthRateMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input, Long-term Revenue Growth Rate [Member]",
        "terseLabel": "Revenue growth rate",
        "documentation": "Measurement input using compounded annualized rate of long-term growth in revenue."
       }
      }
     },
     "auth_ref": [
      "r896"
     ]
    },
    "us-gaap_MeasurementInputTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MeasurementInputTypeAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input Type [Axis]",
        "documentation": "Information by type of measurement input used to determine value of asset and liability."
       }
      }
     },
     "auth_ref": [
      "r567"
     ]
    },
    "us-gaap_MeasurementInputTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MeasurementInputTypeDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Input Type [Domain]",
        "documentation": "Measurement input used to determine value of asset and liability."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]",
        "terseLabel": "Minimum"
       }
      }
     },
     "auth_ref": [
      "r369",
      "r370",
      "r371",
      "r372",
      "r458",
      "r606",
      "r651",
      "r677",
      "r678",
      "r732",
      "r734",
      "r736",
      "r737",
      "r745",
      "r759",
      "r760",
      "r775",
      "r782",
      "r792",
      "r799",
      "r862",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "dsgx_MyCarrierPortalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "MyCarrierPortalMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to My Carrier Portal (\"MCP\") also known as Assure Assist Inc.",
        "label": "My Carrier Portal [Member]",
        "terseLabel": "MCP"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Cash used in financing activities",
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r248"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract]",
        "terseLabel": "FINANCING ACTIVITIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Cash used in investing activities",
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r248"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract]",
        "terseLabel": "INVESTING ACTIVITIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Cash provided by operating activities",
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities."
       }
      }
     },
     "auth_ref": [
      "r154",
      "r155",
      "r156"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]",
        "verboseLabel": "OPERATING ACTIVITIES"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_NetChbLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "NetChbLlcMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent the member information pertaining to Net CHB, LLC.",
        "label": "Net CHB, LLC [Member]",
        "terseLabel": "Net CHB, LLC"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss)",
        "terseLabel": "Net Income",
        "totalLabel": "NET INCOME",
        "verboseLabel": "Net income",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r144",
      "r156",
      "r190",
      "r209",
      "r233",
      "r236",
      "r241",
      "r253",
      "r259",
      "r261",
      "r262",
      "r263",
      "r264",
      "r267",
      "r268",
      "r277",
      "r291",
      "r305",
      "r311",
      "r314",
      "r324",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r564",
      "r571",
      "r628",
      "r707",
      "r725",
      "r726",
      "r774",
      "r808",
      "r860"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recently issued accounting pronouncements",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncompeteAgreementsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noncompete Agreements [Member]",
        "terseLabel": "Non-compete covenants",
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party."
       }
      }
     },
     "auth_ref": [
      "r113"
     ]
    },
    "us-gaap_NoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical long-lived assets",
        "terseLabel": "Geographical long-lived assets",
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r319"
     ]
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Reportable Segments",
        "terseLabel": "Number of reportable segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r834"
     ]
    },
    "dsgx_OcrServicesIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "OcrServicesIncMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to OCR Services, Inc",
        "label": "OCR Services, Inc [Member]",
        "terseLabel": "OCR"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Expenses",
        "totalLabel": "TOTAL EXPENSES",
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Income (Loss)",
        "totalLabel": "INCOME FROM OPERATIONS",
        "verboseLabel": "Income from operations",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r291",
      "r305",
      "r311",
      "r314",
      "r774"
     ]
    },
    "us-gaap_OperatingLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Cost",
        "terseLabel": "Operating lease cost",
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r796"
     ]
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability",
        "totalLabel": "Total lease obligations",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r590"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Current",
        "terseLabel": "Lease obligations (Note 13)",
        "verboseLabel": "Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r590"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Noncurrent",
        "terseLabel": "LEASE OBLIGATIONS (Note 13)",
        "verboseLabel": "Long-term",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r590"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Payments",
        "terseLabel": "Operating cash outflows from operating leases included in measurement of lease liabilities",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r591",
      "r596"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Right-of-Use Asset",
        "verboseLabel": "RIGHT-OF-USE ASSETS (Note 13)",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r589"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "terseLabel": "Weighted average discount rate (%)",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r599",
      "r796"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
        "terseLabel": "Weighted average remaining lease term (years)",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r598",
      "r796"
     ]
    },
    "us-gaap_OperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLossCarryforwards",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating loss carryforwards",
        "terseLabel": "Income tax loss carryforwards",
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r101"
     ]
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of the Business"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Accrued Liabilities, Current",
        "terseLabel": "Other accrued liabilities",
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": {
       "parentTag": "us-gaap_OtherReceivablesNetCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets, Current",
        "terseLabel": "Other receivables",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r229",
      "r797"
     ]
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets, Noncurrent",
        "verboseLabel": "OTHER LONG-TERM ASSETS (Note 19)",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r218"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign currency translation adjustment, net of income tax (recovery) expense of $1,094 for the year ended January 31, 2024 (January 31, 2023 - ($58); January 31, 2022 - ($348)",
        "terseLabel": "Foreign currency translation adjustment, net of income tax (recovery) expense of $(391) for the year ended January 31, 2025 (January 31, 2024 - $1,094; January 31, 2023 - ($58))",
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax",
        "verboseLabel": "Foreign currency translation adjustment, net of income tax (recovery) expense",
        "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r10",
      "r576",
      "r584"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Total other comprehensive income (loss)",
        "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r36",
      "r234",
      "r237",
      "r243",
      "r578",
      "r579",
      "r585",
      "r612",
      "r629",
      "r819",
      "r820"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "terseLabel": "Other comprehensive income (loss), net of income taxes",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r25",
      "r182",
      "r234",
      "r237"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossTaxAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossTaxAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income Loss Tax [Abstract]",
        "terseLabel": "Other comprehensive income (loss):"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherCostAndExpenseOperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCostAndExpenseOperating",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 5.0
      },
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Cost and Expense, Operating",
        "terseLabel": "Other charges (Note 20)",
        "totalLabel": "Other charges, total",
        "verboseLabel": "Other charges (Note 20)",
        "documentation": "The total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation."
       }
      }
     },
     "auth_ref": [
      "r150",
      "r632"
     ]
    },
    "dsgx_OtherCountriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "OtherCountriesMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents other countries.",
        "label": "Other Countries [Member]",
        "terseLabel": "Other countries"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherIncomeAndExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherIncomeAndExpensesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Charges"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherIncomeAndOtherExpenseDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherCharges"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Charges.",
        "terseLabel": "Other Charges",
        "documentation": "The entire disclosure for other income or other expense items (both operating and nonoperating). Sources of nonoperating income or nonoperating expense that may be disclosed, include amounts earned from dividends, interest on securities, profits (losses) on securities, net and miscellaneous other income or income deductions."
       }
      }
     },
     "auth_ref": [
      "r171",
      "r174"
     ]
    },
    "us-gaap_OtherNoncashIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNoncashIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Noncash Income (Expense)",
        "negatedLabel": "Other non-cash operating activities",
        "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other."
       }
      }
     },
     "auth_ref": [
      "r156"
     ]
    },
    "dsgx_OtherReceivablesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "OtherReceivablesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "No definition available.",
        "label": "Other Receivables"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherReceivablesNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherReceivablesNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Receivables, Net, Current",
        "terseLabel": "Other (Note 6)",
        "totalLabel": "Total",
        "documentation": "Amount, after allowance, of receivables classified as other, due within one year or the operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_OtherReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "OtherReceivablesTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of other receivables.",
        "label": "Other Receivables [Table Text Block]",
        "terseLabel": "Schedule of other receivables"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_OtherReceivablesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "OtherReceivablesTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for other receivables.",
        "label": "Other Receivables [Text Block]",
        "terseLabel": "Other Receivables"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_PSUsAndRSUsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "PSUsAndRSUsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to PSUs and RSUs.",
        "label": "PSUs and RSUs [Member]",
        "terseLabel": "PSU and RSU",
        "verboseLabel": "Restricted stock and Performance share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities",
        "negatedLabel": "Payment of contingent consideration",
        "terseLabel": "Earn-out arrangements accrued at the time of acquisition",
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date."
       }
      }
     },
     "auth_ref": [
      "r13"
     ]
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentForContingentConsiderationLiabilityInvestingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment for Contingent Consideration Liability, Investing Activities",
        "terseLabel": "Contingent consideration paid out of investing activities",
        "documentation": "Amount of cash outflow, made soon after acquisition date of business combination, to settle contingent consideration liability."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentForContingentConsiderationLiabilityOperatingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment for Contingent Consideration Liability, Operating Activities",
        "terseLabel": "Contingent consideration paid out of cash flow from operating activities",
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability exceeding amount recognized at acquisition date. Includes, but is not limited to, measurement period adjustment and less amount paid soon after acquisition date."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "dsgx_PaymentForContingentConsiderationLiabilityTotal": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "PaymentForContingentConsiderationLiabilityTotal",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow made for the settlement of contingent consideration liability related to business combinations of the entity during the reporting period.",
        "label": "Payment for Contingent Consideration Liability, Total",
        "terseLabel": "Contingent consideration paid"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForRestructuring": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForRestructuring",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments for Restructuring",
        "negatedLabel": "Cash draw downs",
        "documentation": "Amount of cash payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r360",
      "r824"
     ]
    },
    "us-gaap_PaymentsOfDebtIssuanceCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfDebtIssuanceCosts",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments of Debt Issuance Costs",
        "negatedLabel": "Payment of debt issuance costs",
        "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "negatedLabel": "Payment of withholding taxes on net share settlements",
        "verboseLabel": "Payments to satisfy employee tax withholding net share settlements",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r247"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Businesses, Gross",
        "negatedLabel": "Acquisition of subsidiaries, net of cash acquired (Note 3)",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r55",
      "r546"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": {
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, net of cash acquired",
        "terseLabel": "Cash, net of cash acquired related to acquisition",
        "verboseLabel": "Acquisition purchase price, net of cash acquired",
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Additions to property and equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "dsgx_PercentageOfAccountReceivable": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "PercentageOfAccountReceivable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent of percentage item",
        "label": "Represents the percentage of accounts receivable.",
        "verboseLabel": "Percentage of account receivable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Performance Shares [Member]",
        "terseLabel": "PSU",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r866",
      "r867",
      "r868",
      "r869",
      "r870",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875",
      "r876",
      "r877",
      "r878",
      "r879",
      "r880",
      "r881",
      "r882",
      "r883",
      "r884",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889",
      "r890",
      "r891"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r866",
      "r867",
      "r868",
      "r869",
      "r870",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875",
      "r876",
      "r877",
      "r878",
      "r879",
      "r880",
      "r881",
      "r882",
      "r883",
      "r884",
      "r885",
      "r886",
      "r887",
      "r888",
      "r889",
      "r890",
      "r891"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "Prepaid expenses and other (Note 7)",
        "totalLabel": "Prepaid expenses and other",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r818"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseAndOtherAssetsCurrentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid Expenses and Other"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOtherDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid Expense, Current",
        "terseLabel": "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": [
      "r228",
      "r333",
      "r334",
      "r768"
     ]
    },
    "dsgx_PrepaidExpensesAndOtherCurrentAssetsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "PrepaidExpensesAndOtherCurrentAssetsTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePrepaidExpensesAndOther"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet.",
        "label": "Prepaid Expenses And Other Current Assets [Text Block]",
        "terseLabel": "Prepaid Expenses and Other"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Issuance of Common Stock",
        "terseLabel": "Issuance of common shares for cash, net of issuance costs (Note 15)",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Stock Options Exercised",
        "terseLabel": "Proceeds from stock options exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r34"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r316",
      "r608",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r763",
      "r785",
      "r798",
      "r815",
      "r858",
      "r859",
      "r864",
      "r914"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r316",
      "r608",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r763",
      "r785",
      "r798",
      "r815",
      "r858",
      "r859",
      "r864",
      "r914"
     ]
    },
    "dsgx_ProfessionalServicesAndOtherMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ProfessionalServicesAndOtherMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to items categorized as Professional Services and Other.",
        "label": "Professional services and other"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Property and Equipment",
        "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": [
      "r162",
      "r196",
      "r202",
      "r203"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Gross",
        "terseLabel": "Cost",
        "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": [
      "r163",
      "r214",
      "r626"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Line Items]",
        "terseLabel": "Property and Equipment",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Net",
        "terseLabel": "PROPERTY AND EQUIPMENT, NET (Note 8)",
        "totalLabel": "Net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r616",
      "r626",
      "r797"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "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": [
      "r18",
      "r196",
      "r202",
      "r624"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Table Text Block]",
        "terseLabel": "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": [
      "r18"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Domain]",
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "auth_ref": [
      "r163"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Useful Life",
        "verboseLabel": "Property and equipment useful life (Year)",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant, and Equipment, Useful Life, Term, Description [Extensible Enumeration]",
        "documentation": "Indicates description of term of useful life for property, plant, and equipment when not stated as numeric value."
       }
      }
     },
     "auth_ref": [
      "r850"
     ]
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "terseLabel": "Current period provision for expected losses",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r246",
      "r328"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r369",
      "r370",
      "r371",
      "r372",
      "r451",
      "r458",
      "r490",
      "r491",
      "r492",
      "r605",
      "r606",
      "r651",
      "r677",
      "r678",
      "r732",
      "r734",
      "r736",
      "r737",
      "r745",
      "r759",
      "r760",
      "r775",
      "r782",
      "r792",
      "r799",
      "r802",
      "r851",
      "r862",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r369",
      "r370",
      "r371",
      "r372",
      "r451",
      "r458",
      "r490",
      "r491",
      "r492",
      "r605",
      "r606",
      "r651",
      "r677",
      "r678",
      "r732",
      "r734",
      "r736",
      "r737",
      "r745",
      "r759",
      "r760",
      "r775",
      "r782",
      "r792",
      "r799",
      "r802",
      "r851",
      "r862",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "us-gaap_ReceivablesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade Accounts Receivable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]",
        "terseLabel": "Provision for Credit Losses",
        "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized."
       }
      }
     },
     "auth_ref": [
      "r74"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and development expense",
        "terseLabel": "Research and development",
        "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use."
       }
      }
     },
     "auth_ref": [
      "r127",
      "r507",
      "r912"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and Development Expense [Member]",
        "terseLabel": "Research and development",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research, Development, and Computer Software, Policy [Policy Text Block]",
        "terseLabel": "Research and development costs",
        "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r3",
      "r127"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted Stock Units (RSUs) [Member]",
        "terseLabel": "RSU",
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedCostCostIncurredToDate1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedCostCostIncurredToDate1",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Cost, Cost Incurred to Date",
        "terseLabel": "Restructuring cost incurred to date",
        "documentation": "Amount of costs incurred to date for the specified restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r359",
      "r362",
      "r365",
      "r367"
     ]
    },
    "us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedCostExpectedCostRemaining1",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1",
        "terseLabel": "Restructuring and related cost, expected cost remaining",
        "documentation": "Amount of expected cost remaining for the specified restructuring cost."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "parentTag": "us-gaap_OtherCostAndExpenseOperating",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring on plans",
        "terseLabel": "Restructuring plans",
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r363",
      "r365",
      "r852"
     ]
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCostAndReserveAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Type [Axis]",
        "documentation": "Information by type of restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r359",
      "r360",
      "r365",
      "r366"
     ]
    },
    "us-gaap_RestructuringPlanAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringPlanAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Plan [Axis]",
        "documentation": "Information by individual restructuring plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringPlanDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringPlanDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Plan [Domain]",
        "documentation": "Identification of the individual restructuring plans."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringReserve": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringReserve",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Reserve",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "documentation": "Carrying amount (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized plan."
       }
      }
     },
     "auth_ref": [
      "r360",
      "r364"
     ]
    },
    "us-gaap_RestructuringReserveAccrualAdjustment1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringReserveAccrualAdjustment1",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accruals and adjustments",
        "terseLabel": "Accruals and adjustments",
        "documentation": "Amount of expense (reversal of expense) which increases (decreases) the restructuring reserve from an adjustment to a previously accrued restructuring liability."
       }
      }
     },
     "auth_ref": [
      "r360",
      "r366"
     ]
    },
    "us-gaap_RestructuringReserveTranslationAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringReserveTranslationAdjustment",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Reserve Translation Adjustment",
        "negatedLabel": "Non-cash draw downs and foreign exchange",
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the restructuring reserve."
       }
      }
     },
     "auth_ref": [
      "r853",
      "r854"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings (Accumulated Deficit)",
        "verboseLabel": "Retained earnings",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r137",
      "r170",
      "r622",
      "r655",
      "r657",
      "r664",
      "r688",
      "r797"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings [Member]",
        "terseLabel": "Retained earnings",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r256",
      "r257",
      "r258",
      "r260",
      "r266",
      "r268",
      "r325",
      "r326",
      "r499",
      "r500",
      "r501",
      "r530",
      "r531",
      "r555",
      "r557",
      "r558",
      "r560",
      "r562",
      "r652",
      "r654",
      "r666",
      "r918"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract Balances, Performance Obligations and Contract Costs"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "verboseLabel": "Revenues",
        "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise."
       }
      }
     },
     "auth_ref": [
      "r292",
      "r293",
      "r304",
      "r309",
      "r310",
      "r316",
      "r318",
      "r320",
      "r446",
      "r447",
      "r608"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue From Contract With Customer Including Assessed Tax",
        "terseLabel": "Geographical revenue",
        "verboseLabel": "REVENUES",
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise."
       }
      }
     },
     "auth_ref": [
      "r292",
      "r293",
      "r304",
      "r309",
      "r310",
      "r316",
      "r318",
      "r320",
      "r446",
      "r447",
      "r608"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "terseLabel": "Revenue recognition",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r206",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r762"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract Balances, Performance Obligations and Contract Costs.",
        "terseLabel": "Contract Balances, Performance Obligations and Contract Costs",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r206",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r450"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "terseLabel": "Remaining performance obligation, amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r199"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
        "terseLabel": "Remaining performance obligation, period (month)",
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]",
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "terseLabel": "Remaining performance obligation, percentage",
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r812"
     ]
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "terseLabel": "Segmented Information",
        "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": []
    },
    "dsgx_RevolvingOperatingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "RevolvingOperatingCreditFacilityMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to a revolving operating credit facility for general corporate purposes including the financing of ongoing working capital needs and acquisitions.",
        "label": "Revolving Operating Credit Facility [Member]",
        "terseLabel": "Revolving credit facility"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability",
        "terseLabel": "New right-of-use assets obtained in exchange for lease obligations",
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r597",
      "r796"
     ]
    },
    "us-gaap_SaleOfStockNameOfTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SaleOfStockNameOfTransactionDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sale of Stock [Domain]",
        "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]",
        "terseLabel": "Schedule of trade accounts receivable",
        "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables."
       }
      }
     },
     "auth_ref": [
      "r50"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Schedule of accrued liabilities",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]",
        "terseLabel": "Schedule of acquired intangible assets are being amortized over their estimated useful lives",
        "documentation": "Tabular disclosure of the characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company."
       }
      }
     },
     "auth_ref": [
      "r78"
     ]
    },
    "dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, amortization of useful life.",
        "label": "Schedule of Amortization Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Schedule of amortization of intangible assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r107",
      "r544"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]",
        "terseLabel": "Schedule of preliminary purchase price allocation for businesses acquired",
        "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r107"
     ]
    },
    "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]",
        "terseLabel": "Schedule of cash flow changes in operating asset and liabilities",
        "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of cash settled under restricted share units.",
        "label": "Schedule Of Cash Settled Restricted Share Unit Plan Activity [Table Text Block]",
        "terseLabel": "Schedule of cash settled restricted share unit plan activity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Common Stock Outstanding Roll Forward [Table Text Block]",
        "terseLabel": "Schedule of common shares outstanding",
        "documentation": "Tabular disclosure of the change in common stock outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "terseLabel": "Schedule of components income tax of expense (recovery)",
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years."
       }
      }
     },
     "auth_ref": [
      "r177"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "terseLabel": "Schedule of deferred tax assets and liabilities",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r176"
     ]
    },
    "us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Derivative Assets at Fair Value [Table Text Block]",
        "terseLabel": "Schedule of financial instruments measured at fair value on recurring basis",
        "documentation": "Tabular disclosure of derivative assets at fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "terseLabel": "Schedule of computation of basic and diluted 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": [
      "r833"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareBasicByCommonClassTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Earnings Per Share, Basic, by Common Class, Including Two Class Method [Table]",
        "documentation": "The table contains disclosure pertaining to an entity's basic earnings per share."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r63",
      "r272",
      "r276",
      "r278"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of effective income tax rate reconciliation",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r175"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "terseLabel": "Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations",
        "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement."
       }
      }
     },
     "auth_ref": [
      "r97"
     ]
    },
    "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]",
        "terseLabel": "Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country",
        "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area."
       }
      }
     },
     "auth_ref": [
      "r73"
     ]
    },
    "us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from External Customers by Products and Services [Table Text Block]",
        "terseLabel": "Schedule of disaggregated revenue information by product and services",
        "documentation": "Tabular disclosure of entity-wide revenues from external customers for each product or service or each group of similar products or services if the information is not provided as part of the reportable operating segment information."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets [Table]",
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r80",
      "r609"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "verboseLabel": "Schedule 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": [
      "r78",
      "r80"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Goodwill [Table]",
        "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons."
       }
      }
     },
     "auth_ref": [
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r351",
      "r776"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of goodwill",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r776",
      "r839",
      "r840",
      "r841",
      "r842",
      "r843",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849"
     ]
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]",
        "terseLabel": "Schedule of Income before Income Tax, Domestic and Foreign",
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions."
       }
      }
     },
     "auth_ref": [
      "r829"
     ]
    },
    "us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfNonvestedShareActivityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Nonvested Share Activity [Table Text Block]",
        "terseLabel": "Schedule of unvested stock options activity",
        "documentation": "Tabular disclosure of the changes in outstanding nonvested shares."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Other Operating Cost and Expense, by Component [Table Text Block]",
        "terseLabel": "Schedule of components of other charges",
        "documentation": "Tabular disclosure of each detailed component of other operating costs and expenses that are applicable to sales and revenues, but not included in the cost of sales in the income statement."
       }
      }
     },
     "auth_ref": [
      "r150"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    },
    "us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Restructuring Reserve by Type of Cost [Table Text Block]",
        "terseLabel": "Schedule of changes in restructuring plan",
        "documentation": "Tabular disclosure of an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost. This element may also include a description of any reversal and other adjustment made during the period to the amount of an accrued liability for restructuring activities. This element may be used to encapsulate the roll forward presentations of an entity's restructuring reserve by type of cost and in total, and explanation of changes that occurred in the period."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r85"
     ]
    },
    "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]",
        "terseLabel": "Schedule of disaggregated revenue information by geographic location of customer and revenue",
        "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r147"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r142"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r68",
      "r69",
      "r75"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "terseLabel": "Schedule of segment breakdown of measures of profit",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r68",
      "r69",
      "r75"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r460",
      "r462",
      "r465",
      "r466",
      "r467",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement, Option, Activity [Table Text Block]",
        "terseLabel": "Schedule of stock option activity",
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r33",
      "r94"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "terseLabel": "Schedule of weighted-average assumptions",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r173"
     ]
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "terseLabel": "Schedule of restricted share units activity",
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfStockByClassTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Stock by Class [Table]",
        "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r86",
      "r87",
      "r88",
      "r89",
      "r90",
      "r91",
      "r92",
      "r168",
      "r169",
      "r170",
      "r220",
      "r221",
      "r222",
      "r286",
      "r411",
      "r412",
      "r413",
      "r415",
      "r418",
      "r423",
      "r425",
      "r660",
      "r661",
      "r662",
      "r663",
      "r782",
      "r811",
      "r826"
     ]
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "terseLabel": "Schedule of unrecognized tax benefits roll forward",
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r795",
      "r893"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r288",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r314",
      "r320",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r362",
      "r367",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r776",
      "r815",
      "r914"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Domain]"
       }
      }
     },
     "auth_ref": [
      "r318",
      "r319",
      "r670",
      "r673",
      "r675",
      "r733",
      "r735",
      "r738",
      "r746",
      "r750",
      "r751",
      "r752",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r764",
      "r786",
      "r802",
      "r864",
      "r914"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segmented Information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segmented Information.",
        "terseLabel": "Segmented Information",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r303",
      "r308",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r320"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Information [Line Items]",
        "terseLabel": "Segmented Information",
        "verboseLabel": "Segmented Information",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingInformationOperatingIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingInformationOperatingIncomeLossAbstract",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Information, Operating Income (Loss) [Abstract]",
        "verboseLabel": "Less:"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_SegmentReportingOtherSegmentItemAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "SegmentReportingOtherSegmentItemAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss).",
        "label": "Segment Reporting, Other Segment Item, Amount",
        "verboseLabel": "Other segment items"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_SellerCloudLlcAndSellerCloudEuropeLtd.Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "SellerCloudLlcAndSellerCloudEuropeLtd.Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Seller Cloud LLC and Seller Cloud Europe Ltd, collectively known as Seller Cloud.",
        "label": "Seller Cloud LLC And Seller Cloud Europe Ltd. [Member]",
        "terseLabel": "Sellercloud",
        "verboseLabel": "Seller-cloud"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingAndMarketingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingAndMarketingExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling And Marketing Expense",
        "terseLabel": "Sales and marketing",
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingAndMarketingExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingAndMarketingExpenseMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling and Marketing Expense [Member]",
        "terseLabel": "Sales and marketing",
        "documentation": "Primary financial statement caption encompassing selling and marketing expense."
       }
      }
     },
     "auth_ref": [
      "r145"
     ]
    },
    "dsgx_SeniorSecuredCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "SeniorSecuredCreditFacilityMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the senior secured credit facility.",
        "label": "Senior Secured Credit Facility [Member]",
        "terseLabel": "Senior secured credit facility"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ServiceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServiceMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Service",
        "documentation": "Assistance, including, but not limited to, technology, license and maintenance, license and service, maintenance, oil and gas, and financial service."
       }
      }
     },
     "auth_ref": [
      "r785"
     ]
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement, Noncash Expense",
        "verboseLabel": "Stock-based compensation expense (Note 17)",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
        "verboseLabel": "Share-based compensation arrangement by share-based payment award, award vesting period (Year)",
        "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": [
      "r793"
     ]
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.",
        "label": "Exercisable, Aggregate Intrinsic Value, PSU",
        "terseLabel": "Exercisable, aggregate intrinsic value"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Exercisable, number of units (in shares)",
        "terseLabel": "Exercisable, number of units (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.",
        "label": "Exercisable, PSU weighted-average granted date fair value (in dollars per share)",
        "terseLabel": "Exercisable, weighted-average granted date fair value (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Exercisable, Weighted-Average Remaining Contractual, PSU (Year)",
        "terseLabel": "Exercisable, weighted-average remaining contractual (years)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "negatedLabel": "Forfeited (in shares)",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r482"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "terseLabel": "Forfeited, weighted-average granted date fair value (in dollars per share)",
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r482"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of PSUs Granted (in shares)",
        "terseLabel": "PSUs Granted (in shares)",
        "verboseLabel": "RSUs Granted (in shares)",
        "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": [
      "r480"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)",
        "terseLabel": "PSUs Granted, weighted-average granted date fair value (in dollars per share)",
        "verboseLabel": "RSUs Granted, weighted-average granted date fair value (in dollars per share)",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r480"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Weighted-Average Granted Date Fair Value (in dollars per share), Ending",
        "periodStartLabel": "Weighted-Average Granted Date Fair Value (in dollars per share), Beginning",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r477",
      "r478"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted-Average Remaining Contractual, PSU (Year)",
        "terseLabel": "Weighted-Average Remaining Contractual (years)",
        "documentation": "Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r172"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedLabel": "Exercised (in shares)",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r481"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
        "terseLabel": "Fair value other than options (in dollars per share)",
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash."
       }
      }
     },
     "auth_ref": [
      "r484"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Exercised, weighted-average granted date fair value (in dollars per share)",
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement."
       }
      }
     },
     "auth_ref": [
      "r481"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected volatility (%)",
        "terseLabel": "Expected volatility (%)",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r490"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Risk-free rate (%)",
        "terseLabel": "Risk-free rate (%)",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r492"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "terseLabel": "Stock-Based Compensation Plans",
        "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": [
      "r460",
      "r462",
      "r465",
      "r466",
      "r467",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
        "periodEndLabel": "Number of Units Outstanding (in shares), Ending",
        "periodStartLabel": "Number of Units Outstanding (in shares), Beginning",
        "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r31"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
        "terseLabel": "Number of shares available for grant (in shares)",
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable."
       }
      }
     },
     "auth_ref": [
      "r93"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercisable, shares (in shares)",
        "terseLabel": "Exercisable, shares (in shares)",
        "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": [
      "r471"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercisable, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Exercisable, weighted-average exercise price (in dollars per share)",
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r471"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
        "terseLabel": "Intrinsic value of options",
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares."
       }
      }
     },
     "auth_ref": [
      "r484"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
        "negatedLabel": "Forfeited, shares (in shares)",
        "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r475"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted, shares (in shares)",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)",
        "verboseLabel": "Granted, shares (in shares)",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r473"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)",
        "terseLabel": "Weighted average grant-date fair value of options (in dollars per share)",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r483"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Intrinsic Value",
        "periodEndLabel": "Aggregate Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r93"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
        "periodEndLabel": "Number of Stock Options Outstanding (in shares), Ending",
        "periodStartLabel": "Number of Stock Options Outstanding (in shares), Beginning",
        "terseLabel": "Number of stock options outstanding (in shares)",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r469",
      "r470"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
        "periodEndLabel": "Weighted-Average Exercise Price (in dollars per share), Ending",
        "periodStartLabel": "Weighted-Average Exercise Price (in dollars per share), Beginning",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r469",
      "r470"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested or expected to vest, RSU (in shares)",
        "terseLabel": "Vested or expected to vest, RSU (in shares)",
        "documentation": "Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r486"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested or expected to vest, aggregate intrinsic value",
        "terseLabel": "Vested or expected to vest, aggregate intrinsic value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r485"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested or expected to vest, shares (in shares)",
        "terseLabel": "Vested or expected to vest, shares (in shares)",
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r485"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested or expected to vest, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Vested or expected to vest, weighted-average exercise price (in dollars per share)",
        "verboseLabel": "Vested or expected to vest, weighted-average granted date fair value (in dollars per share)",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r485"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Performance units issued (in shares)",
        "terseLabel": "Performance units issued (in shares)",
        "documentation": "Number of shares issued under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r93"
     ]
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the weighted average grant date fair value of units issued during the period.",
        "label": "Performance units issued, weighted-average granted date fair value (in dollars per share)",
        "terseLabel": "Performance units issued, weighted-average granted date fair value (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r465",
      "r466",
      "r467",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercised, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Exercised, weighted-average exercise price (in dollars per share)",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r474"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forfeited, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Forfeited, weighted-average exercise price (in dollars per share)",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated."
       }
      }
     },
     "auth_ref": [
      "r475"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Granted, weighted-average exercise price (in dollars per share)",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r473"
     ]
    },
    "dsgx_ShareBasedCompensationExpenseAndRelatedTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareBasedCompensationExpenseAndRelatedTaxes",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement including the taxes related to such expenses during the reporting period. Excludes amount capitalized.",
        "label": "Share Based Compensation Expense And Related Taxes",
        "verboseLabel": "Stock-based compensation and related taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "terseLabel": "Stock-based compensation plans",
        "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": [
      "r459",
      "r468",
      "r487",
      "r488",
      "r489",
      "r490",
      "r493",
      "r502",
      "r503",
      "r504",
      "r505"
     ]
    },
    "us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]",
        "terseLabel": "Schedule of performance share units activity",
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares."
       }
      }
     },
     "auth_ref": [
      "r35"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range of Exercise Prices, Lower Limit (in dollars per share)",
        "terseLabel": "Range of exercise prices, lower limit (in dollars per share)",
        "documentation": "The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range."
       }
      }
     },
     "auth_ref": [
      "r96"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range of Exercise Prices, Upper Limit (in dollars per share)",
        "terseLabel": "Range of exercise prices, upper limit (in dollars per share)",
        "documentation": "The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range."
       }
      }
     },
     "auth_ref": [
      "r96"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Intrinsic Value, PSU",
        "periodEndLabel": "Aggregate Intrinsic Value",
        "documentation": "Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
        "verboseLabel": "Share-based compensation arrangement by share-based payment award, expiration period (Year)",
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r794"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected option life (years) (Year)",
        "terseLabel": "Expected option life (years)",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r489"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercisable, aggregate intrinsic value",
        "terseLabel": "Exercisable, aggregate intrinsic value",
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable."
       }
      }
     },
     "auth_ref": [
      "r93"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercisable, weighted-average remaining contractual life (Year)",
        "terseLabel": "Exercisable, weighted-average remaining contractual life (Year)",
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r93"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares",
        "periodEndLabel": "Stock Options Outstanding (in shares), Ending",
        "periodStartLabel": "Stock Options Outstanding (in shares), Beginning",
        "documentation": "Number of non-vested options outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares",
        "negatedLabel": "Forfeited (in shares)",
        "documentation": "Number of non-vested options forfeited."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)",
        "documentation": "Weighted average grant-date fair value of non-vested options forfeited."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Ending",
        "periodStartLabel": "Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Beginning",
        "documentation": "Weighted average grant-date fair value of non-vested options outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted-Average Remaining Contractual Life (Year)",
        "terseLabel": "Weighted-Average Remaining Contractual Life (years)",
        "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": [
      "r172"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested or expected to vest, weighted-average remaining contractual life (Year)",
        "terseLabel": "Vested or expected to vest, weighted-average remaining contractual life (Year)",
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r485"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
        "terseLabel": "Grant-date fair value of options (in dollars per share)",
        "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock."
       }
      }
     },
     "auth_ref": [
      "r484"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
        "negatedLabel": "Vested (in shares)",
        "documentation": "Number of options vested."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)",
        "terseLabel": "Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)",
        "documentation": "Weighted average grant-date fair value of options vested."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ShareholderApprovedStockOptionsPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShareholderApprovedStockOptionsPlanMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Company's shareholder approved stock option plan.",
        "label": "Shareholder-Approved Stock Options Plan [Member]",
        "terseLabel": "Shareholder-approved stock options plan"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation",
        "terseLabel": "Employee tax withholding for net share settlements",
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ShelfProspectusMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShelfProspectusMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the short-form base shelf prospectus entered into by the company.",
        "label": "2022 Base Shelf Prospectus [Member]",
        "terseLabel": "2022 Base Shelf Prospectus"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_ShelfProspectusPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "ShelfProspectusPeriod",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The duration of the shelf prospectus.",
        "label": "Shelf Prospectus Period (Month)",
        "terseLabel": "Shelf prospectus period (month)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShortTermLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Short-Term Lease, Cost",
        "terseLabel": "Short-term lease cost",
        "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less."
       }
      }
     },
     "auth_ref": [
      "r595",
      "r796"
     ]
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Significant Accounting Policies [Text Block]",
        "terseLabel": "Basis of Presentation",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r157",
      "r250"
     ]
    },
    "us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit",
        "terseLabel": "Significant change in unrecognized tax benefits is reasonably possible, amount of unrecorded benefit",
        "documentation": "The amount of the unrecognized tax benefit of a position taken for which it is reasonably possible that the total amount thereof will significantly increase or decrease within twelve months of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r178"
     ]
    },
    "dsgx_SingleReportableSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "SingleReportableSegmentMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information relating to the entity's single reportable segment.",
        "label": "Single Reportable Segment [Member]",
        "terseLabel": "Single reportable segment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationBreakdownOfMeasuresOfProfitDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r288",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r314",
      "r320",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r358",
      "r362",
      "r367",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r776",
      "r815",
      "r914"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r49",
      "r207",
      "r239",
      "r240",
      "r241",
      "r256",
      "r257",
      "r258",
      "r260",
      "r266",
      "r268",
      "r285",
      "r325",
      "r326",
      "r426",
      "r499",
      "r500",
      "r501",
      "r530",
      "r531",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r562",
      "r578",
      "r580",
      "r581",
      "r582",
      "r583",
      "r585",
      "r601",
      "r652",
      "r653",
      "r654",
      "r666",
      "r727"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]"
       }
      }
     },
     "auth_ref": [
      "r318",
      "r319",
      "r670",
      "r673",
      "r675",
      "r733",
      "r735",
      "r738",
      "r746",
      "r749",
      "r750",
      "r751",
      "r752",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r764",
      "r786",
      "r802",
      "r864",
      "r914"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Line Items]",
        "verboseLabel": "Statement",
        "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": [
      "r256",
      "r257",
      "r258",
      "r285",
      "r608",
      "r658",
      "r667",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r687",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r706",
      "r708",
      "r709",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r727",
      "r803"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementTable",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed."
       }
      }
     },
     "auth_ref": [
      "r256",
      "r257",
      "r258",
      "r285",
      "r608",
      "r658",
      "r667",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r687",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r706",
      "r708",
      "r709",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r727",
      "r803"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuance of common shares (in shares)",
        "terseLabel": "Stock issued during period, shares, new issues (in shares)",
        "documentation": "Number of new stock issued during the period."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r134",
      "r135",
      "r170",
      "r660",
      "r727",
      "r747"
     ]
    },
    "dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of shares issued from the exercise of stock options and share units.",
        "label": "Stock options and share units exercised (in shares)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "negatedLabel": "Exercised, shares (in shares)",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r134",
      "r135",
      "r170",
      "r474"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "terseLabel": "Stock options and share units exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r49",
      "r170"
     ]
    },
    "dsgx_StockOptionsTreasuryStockMethodMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "StockOptionsTreasuryStockMethodMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the treasury stock.",
        "label": "Stock Options, Treasury Stock Method [Member]",
        "terseLabel": "Treasury stock method"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "Balance, end of year",
        "periodStartLabel": "Balance, beginning of year",
        "totalLabel": "TOTAL SHAREHOLDERS' EQUITY",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r135",
      "r138",
      "r139",
      "r159",
      "r689",
      "r705",
      "r728",
      "r729",
      "r797",
      "r809",
      "r828",
      "r837",
      "r897",
      "r918"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders Equity [Abstract]",
        "terseLabel": "SHAREHOLDERS' EQUITY (Note 15)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapital"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity Note Disclosure [Text Block]",
        "terseLabel": "Share Capital",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r252",
      "r410",
      "r412",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r424",
      "r426",
      "r561",
      "r730",
      "r731",
      "r748"
     ]
    },
    "us-gaap_SubsidiarySaleOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsidiarySaleOfStockAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sale of Stock [Axis]",
        "documentation": "Information by type of sale of the entity's stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SummaryOfOperatingLossCarryforwardsTextBlock",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Summary of Operating Loss Carryforwards [Table Text Block]",
        "terseLabel": "Schedule of operating loss carryforwards",
        "documentation": "Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_SupplementalCashFlowElementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplementalCashFlowElementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information [Abstract]",
        "verboseLabel": "Supplemental disclosure of cash flow information:"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "SupplyVisionGroundcloudMcpAndSellercloudMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to Supply Vision, GroundCloud, MCP and Sellercloud.",
        "label": "Supply Vision GroundCloud MCP And Sellercloud [Member]",
        "terseLabel": "Supply Vision, GroundCloud, MCP And Sellercloud"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_SupplyVisionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "SupplyVisionMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to supply vision.",
        "label": "Supply Vision [Member]",
        "terseLabel": "Supply Vision"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxPeriodAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxPeriodAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax Period [Axis]",
        "documentation": "Information about the period subject to enacted tax laws."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxPeriodDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxPeriodDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax Period [Domain]",
        "documentation": "Identified tax period."
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_TaxYear2026Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "TaxYear2026Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to tax year 2026.",
        "label": "2027",
        "terseLabel": "2026"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_TaxYear2027Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "TaxYear2027Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to related to tax year 2027.",
        "label": "Tax Year 2027 [Member]",
        "terseLabel": "2027"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_TaxYear2028Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "TaxYear2028Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to related to tax year 2028.",
        "label": "Tax Year 2028 [Member]",
        "terseLabel": "2028"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_TaxYear2029Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "TaxYear2029Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to related to tax year 2029.",
        "label": "Tax Year 2029 [Member]",
        "terseLabel": "2029"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_TaxYear2030Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "TaxYear2030Member",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to related to tax year 2030.",
        "label": "Tax Year 2030 [Member]",
        "terseLabel": "2030"
       }
      }
     },
     "auth_ref": []
    },
    "srt_TitleOfIndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "TitleOfIndividualAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r836",
      "r903"
     ]
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of Individual [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradeNamesMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade Names [Member]",
        "terseLabel": "Trade names",
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof."
       }
      }
     },
     "auth_ref": [
      "r112"
     ]
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfRestructuringDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Type of Restructuring [Domain]",
        "documentation": "Identification of the types of restructuring costs."
       }
      }
     },
     "auth_ref": [
      "r359",
      "r360",
      "r365",
      "r366"
     ]
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "US",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States",
        "terseLabel": "United States"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnbilledReceivablesCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unbilled Receivables, Current",
        "verboseLabel": "Unbilled receivables",
        "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UndistributedEarningsOfForeignSubsidiaries": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UndistributedEarningsOfForeignSubsidiaries",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Undistributed Earnings of Foreign Subsidiaries",
        "terseLabel": "Undistributed Earnings of Foreign Subsidiaries",
        "documentation": "Amount of undistributed earnings of foreign subsidiaries intended to be permanently reinvested outside the country of domicile."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r23",
      "r509",
      "r540"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross increases - current period",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return."
       }
      }
     },
     "auth_ref": [
      "r518"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "crdr": "debit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
        "negatedLabel": "Lapsing due to statutes of limitations",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations."
       }
      }
     },
     "auth_ref": [
      "r519"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
     "crdr": "credit",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate",
        "terseLabel": "Unrecognized tax benefits that would impact effective tax rate",
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate."
       }
      }
     },
     "auth_ref": [
      "r520"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "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": [
      "r64",
      "r65",
      "r66",
      "r194",
      "r195",
      "r197",
      "r198"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Weighted average common and common equivalent shares outstanding (in shares)",
        "verboseLabel": "Diluted (in 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": [
      "r271",
      "r280"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number Of Shares Outstanding [Abstract]",
        "terseLabel": "WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "terseLabel": "Weighted average shares outstanding (in shares)",
        "verboseLabel": "Basic (in shares)",
        "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": [
      "r270",
      "r280"
     ]
    },
    "dsgx_XpsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "XpsMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent the member information pertaining to XPS.",
        "label": "XPS [Member]",
        "terseLabel": "XPS"
       }
      }
     },
     "auth_ref": []
    },
    "dsgx_XpsTechnologyLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.descartes.com/20250131",
     "localname": "XpsTechnologyLlcMember",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to XPS Technology LLC.",
        "label": "Xps Technology Llc [Member]",
        "terseLabel": "XPS"
       }
      }
     },
     "auth_ref": []
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "SubTopic": "20",
   "Topic": "940",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "16",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479405/805-10-25-16"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "4",
   "SubTopic": "50",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482610/350-50-25-4"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1",
   "SubTopic": "40",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482633/350-40-30-1"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "7",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479637/805-30-30-7"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "8",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479637/805-30-30-8"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479613/805-30-35-1"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-12"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r12": {
   "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"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(f)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(ee)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-17"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-20"
  },
  "r16": {
   "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"
  },
  "r17": {
   "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"
  },
  "r18": {
   "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"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-1"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "30",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "740",
   "Topic": "942",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481141/942-740-50-1"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "740",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480135/944-740-50-1"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c),(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r27": {
   "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"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r34": {
   "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"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Subparagraph": "(c)",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482739/220-10-55-15"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "60",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482053/820-10-60-1"
  },
  "r38": {
   "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"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(a),20,24)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.20)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.21)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.22)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.24)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.25)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.3,4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-5"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r57": {
   "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"
  },
  "r58": {
   "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"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r61": {
   "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"
  },
  "r62": {
   "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"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-25"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-9"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-1"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "((a)(1),(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r82": {
   "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"
  },
  "r83": {
   "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"
  },
  "r84": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "420",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r85": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "420",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r86": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "480",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(CFRR 211.02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480244/480-10-S99-1"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481142/505-10-45-2"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-10"
  },
  "r89": {
   "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"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-4"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-5"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-8"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-12"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-13"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-3"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-3"
  },
  "r102": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-8"
  },
  "r103": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(a)-(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479515/805-10-05-4"
  },
  "r104": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "25",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479405/805-10-25-23"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-3"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "37",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479303/805-10-55-37"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "25",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479668/805-30-25-5"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "25",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479668/805-30-25-6"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1"
  },
  "r118": {
   "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"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "820",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "820",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-1A"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.17)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "985",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481283/985-20-50-1"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//205/tableOfContent"
  },
  "r129": {
   "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"
  },
  "r130": {
   "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"
  },
  "r131": {
   "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"
  },
  "r132": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r133": {
   "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)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r134": {
   "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"
  },
  "r135": {
   "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"
  },
  "r136": {
   "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"
  },
  "r137": {
   "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"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r140": {
   "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"
  },
  "r141": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r147": {
   "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"
  },
  "r148": {
   "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,2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r149": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r150": {
   "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.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r151": {
   "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"
  },
  "r152": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//230/tableOfContent"
  },
  "r153": {
   "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"
  },
  "r154": {
   "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"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//235/tableOfContent"
  },
  "r158": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//275/tableOfContent"
  },
  "r159": {
   "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"
  },
  "r160": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r161": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r162": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//360/tableOfContent"
  },
  "r163": {
   "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"
  },
  "r164": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//440/tableOfContent"
  },
  "r165": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "460",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//460/tableOfContent"
  },
  "r166": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//470/tableOfContent"
  },
  "r167": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//505/tableOfContent"
  },
  "r168": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6"
  },
  "r169": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-7"
  },
  "r170": {
   "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"
  },
  "r171": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "610",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//610/tableOfContent"
  },
  "r172": {
   "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"
  },
  "r173": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r174": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "720",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//720/tableOfContent"
  },
  "r175": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r176": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r177": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r178": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r179": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r180": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//805/tableOfContent"
  },
  "r181": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-38"
  },
  "r182": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19"
  },
  "r183": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r184": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r185": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r186": {
   "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)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r187": {
   "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/2147479853/942-210-S99-1"
  },
  "r188": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r189": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r190": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r191": {
   "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.9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "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/2147480321/958-360-50-1"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A"
  },
  "r202": {
   "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/2147480321/958-360-50-6"
  },
  "r203": {
   "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/2147480321/958-360-50-7"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r205": {
   "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"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//606/tableOfContent"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "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"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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"
  },
  "r215": {
   "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"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "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"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-3"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-10"
  },
  "r233": {
   "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"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r236": {
   "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"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B"
  },
  "r238": {
   "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"
  },
  "r239": {
   "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"
  },
  "r240": {
   "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"
  },
  "r241": {
   "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"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(210.5-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r243": {
   "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(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r245": {
   "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"
  },
  "r246": {
   "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"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r248": {
   "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"
  },
  "r249": {
   "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"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r253": {
   "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"
  },
  "r254": {
   "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"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3"
  },
  "r256": {
   "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"
  },
  "r257": {
   "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"
  },
  "r258": {
   "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"
  },
  "r259": {
   "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"
  },
  "r260": {
   "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"
  },
  "r261": {
   "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"
  },
  "r262": {
   "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"
  },
  "r263": {
   "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"
  },
  "r264": {
   "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"
  },
  "r265": {
   "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"
  },
  "r266": {
   "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"
  },
  "r267": {
   "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"
  },
  "r268": {
   "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"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "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"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-22"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-23"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-28A"
  },
  "r276": {
   "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"
  },
  "r277": {
   "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"
  },
  "r278": {
   "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"
  },
  "r279": {
   "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"
  },
  "r280": {
   "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"
  },
  "r281": {
   "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"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//280/tableOfContent"
  },
  "r288": {
   "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"
  },
  "r289": {
   "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"
  },
  "r290": {
   "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"
  },
  "r291": {
   "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"
  },
  "r292": {
   "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"
  },
  "r293": {
   "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"
  },
  "r294": {
   "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"
  },
  "r295": {
   "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"
  },
  "r296": {
   "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"
  },
  "r297": {
   "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"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r300": {
   "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"
  },
  "r301": {
   "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"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r320": {
   "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"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//330/tableOfContent"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//350-20/tableOfContent"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-2"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "r346": {
   "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"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r352": {
   "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"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r357": {
   "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"
  },
  "r358": {
   "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"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-1"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB TOPIC 5.P.4(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r367": {
   "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"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-1"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-3"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r399": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I"
  },
  "r409": {
   "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"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "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"
  },
  "r417": {
   "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"
  },
  "r418": {
   "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"
  },
  "r419": {
   "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"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-3"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-17"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-19"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-1D"
  },
  "r461": {
   "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"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-3"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480454/718-10-45-1"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r465": {
   "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"
  },
  "r466": {
   "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"
  },
  "r467": {
   "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"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r470": {
   "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"
  },
  "r471": {
   "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"
  },
  "r472": {
   "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"
  },
  "r473": {
   "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"
  },
  "r474": {
   "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"
  },
  "r475": {
   "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"
  },
  "r476": {
   "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"
  },
  "r477": {
   "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"
  },
  "r478": {
   "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"
  },
  "r479": {
   "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"
  },
  "r480": {
   "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"
  },
  "r481": {
   "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"
  },
  "r482": {
   "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"
  },
  "r483": {
   "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"
  },
  "r484": {
   "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"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "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"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r507": {
   "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"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//740/tableOfContent"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482620/740-10-25-3"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-15"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-4"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6"
  },
  "r515": {
   "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"
  },
  "r516": {
   "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"
  },
  "r517": {
   "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"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r521": {
   "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"
  },
  "r522": {
   "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"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "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"
  },
  "r528": {
   "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"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r530": {
   "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"
  },
  "r531": {
   "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"
  },
  "r532": {
   "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"
  },
  "r533": {
   "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"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r537": {
   "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"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1"
  },
  "r539": {
   "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"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-4"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r569": {
   "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"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-10"
  },
  "r571": {
   "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"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//830/tableOfContent"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481839/830-10-45-17"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482014/830-20-35-1"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481956/830-20-45-1"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481956/830-20-45-5"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481926/830-20-50-1"
  },
  "r578": {
   "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"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "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"
  },
  "r583": {
   "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"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-21"
  },
  "r585": {
   "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"
  },
  "r586": {
   "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"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//842-20/tableOfContent"
  },
  "r589": {
   "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"
  },
  "r590": {
   "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"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5"
  },
  "r592": {
   "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"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4"
  },
  "r600": {
   "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"
  },
  "r601": {
   "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"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6"
  },
  "r607": {
   "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/2147482105/912-330-50-1"
  },
  "r608": {
   "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"
  },
  "r609": {
   "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"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r612": {
   "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(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r624": {
   "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/2147479440/944-210-S99-1"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r629": {
   "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/2147483586/944-220-S99-1"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r632": {
   "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(7)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r634": {
   "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/2147480149/944-235-S99-1"
  },
  "r635": {
   "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/2147480149/944-235-S99-1"
  },
  "r636": {
   "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/2147480149/944-235-S99-1"
  },
  "r637": {
   "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/2147480149/944-235-S99-1"
  },
  "r638": {
   "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/2147480149/944-235-S99-1"
  },
  "r639": {
   "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/2147480149/944-235-S99-1"
  },
  "r640": {
   "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/2147480149/944-235-S99-1"
  },
  "r641": {
   "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/2147480149/944-235-S99-1"
  },
  "r642": {
   "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/2147480149/944-235-S99-1"
  },
  "r643": {
   "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/2147480149/944-235-S99-1"
  },
  "r644": {
   "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/2147480149/944-235-S99-1"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A"
  },
  "r652": {
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "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"
  },
  "r655": {
   "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"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r657": {
   "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"
  },
  "r658": {
   "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"
  },
  "r659": {
   "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"
  },
  "r660": {
   "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"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4"
  },
  "r668": {
   "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/2147480524/946-210-50-1"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-12"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-2"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r724": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5A",
   "Subparagraph": "(SX 210.12-13A(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5A"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column E)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column H)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r747": {
   "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/2147481004/946-505-50-2"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-6"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1"
  },
  "r761": {
   "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"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(b)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r765": {
   "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"
  },
  "r766": {
   "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"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r768": {
   "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"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-22"
  },
  "r770": {
   "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"
  },
  "r771": {
   "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"
  },
  "r772": {
   "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"
  },
  "r773": {
   "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"
  },
  "r774": {
   "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"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A"
  },
  "r776": {
   "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"
  },
  "r777": {
   "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"
  },
  "r778": {
   "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"
  },
  "r779": {
   "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"
  },
  "r780": {
   "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"
  },
  "r781": {
   "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"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8"
  },
  "r793": {
   "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"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "217",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482663/740-10-55-217"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53"
  },
  "r797": {
   "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"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F"
  },
  "r800": {
   "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/2147480524/946-210-50-1"
  },
  "r801": {
   "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/2147480524/946-210-50-6"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1"
  },
  "r804": {
   "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/2147480032/946-320-S99-1"
  },
  "r805": {
   "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/2147480032/946-320-S99-2"
  },
  "r806": {
   "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/2147480032/946-320-S99-3"
  },
  "r807": {
   "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/2147480032/946-320-S99-6"
  },
  "r808": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10"
  },
  "r809": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r811": {
   "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"
  },
  "r812": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r813": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r814": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r815": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4H",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H"
  },
  "r816": {
   "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"
  },
  "r817": {
   "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(26)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r818": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r819": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4"
  },
  "r820": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5"
  },
  "r821": {
   "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"
  },
  "r822": {
   "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(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r823": {
   "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(b)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r824": {
   "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"
  },
  "r825": {
   "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"
  },
  "r826": {
   "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"
  },
  "r827": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r828": {
   "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"
  },
  "r829": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r830": {
   "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"
  },
  "r831": {
   "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"
  },
  "r832": {
   "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"
  },
  "r833": {
   "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"
  },
  "r834": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18"
  },
  "r835": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//310-10/tableOfContent"
  },
  "r836": {
   "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"
  },
  "r837": {
   "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"
  },
  "r838": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r839": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r840": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r841": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r842": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r843": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r844": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r845": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r846": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r847": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r848": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A"
  },
  "r849": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r850": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482190/360-10-35-3"
  },
  "r851": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10"
  },
  "r852": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482047/420-10-45-3"
  },
  "r853": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r854": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r855": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//450/tableOfContent"
  },
  "r856": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r857": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r858": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r859": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r860": {
   "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"
  },
  "r861": {
   "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"
  },
  "r862": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r863": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r864": {
   "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"
  },
  "r865": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r866": {
   "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"
  },
  "r867": {
   "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"
  },
  "r868": {
   "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"
  },
  "r869": {
   "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"
  },
  "r870": {
   "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"
  },
  "r871": {
   "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"
  },
  "r872": {
   "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"
  },
  "r873": {
   "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"
  },
  "r874": {
   "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"
  },
  "r875": {
   "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"
  },
  "r876": {
   "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"
  },
  "r877": {
   "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"
  },
  "r878": {
   "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"
  },
  "r879": {
   "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"
  },
  "r880": {
   "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"
  },
  "r881": {
   "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"
  },
  "r882": {
   "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"
  },
  "r883": {
   "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"
  },
  "r884": {
   "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"
  },
  "r885": {
   "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"
  },
  "r886": {
   "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"
  },
  "r887": {
   "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"
  },
  "r888": {
   "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"
  },
  "r889": {
   "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"
  },
  "r890": {
   "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"
  },
  "r891": {
   "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"
  },
  "r892": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r893": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r894": {
   "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"
  },
  "r895": {
   "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"
  },
  "r896": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r897": {
   "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"
  },
  "r898": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "230",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r899": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3"
  },
  "r900": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3"
  },
  "r901": {
   "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"
  },
  "r902": {
   "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"
  },
  "r903": {
   "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"
  },
  "r904": {
   "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"
  },
  "r905": {
   "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"
  },
  "r906": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r907": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r908": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r909": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r910": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r911": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r912": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "912",
   "SubTopic": "730",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482517/912-730-25-1"
  },
  "r913": {
   "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/2147479440/944-210-S99-1"
  },
  "r914": {
   "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"
  },
  "r915": {
   "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/2147480767/946-205-45-4"
  },
  "r916": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r917": {
   "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/2147483581/946-220-45-3"
  },
  "r918": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r919": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r920": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r921": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r922": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r923": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>131
<FILENAME>0001410578-25-000279-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001410578-25-000279-xbrl.zip
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
MXW&R6*0^7UZ8GR1=1J)YS:46^2=1GY&HS\NHF&G(KMQJ9'J)(HPVHUB4EF5
M4"*"(E%)##"DXGLF"R(1*J1)!R\W=K6V,#R%>H<I2%'9IQ1[?P;Q4S2:7(LY
MI* 2?8/HL"=$M]VW(1>CG1PI["0O9LTTBJ*@B\D+@[_3XIP5;'C8/1;]-)[%
M88 I@XU7OK0\]59D-!Y_OVMS_#W^.K@=?AU=G0]OQ_^%AO]]?WGWAP-6T[P!
MB#-O043/>B?/IVI-MTYA@.KX\'U]H2%9H(P'^B'EXMJ:Q;Q-#8F"P@0)>$*:
M9V$.$C,DIQXC<G!:::P9Z R4QO,2Q6 F6:6#U(J9&ZK:N/98^.A8.MLHSDE*
MSC8.E)?WM[H18T@D>BU.A/HVR.ZTG ;SJ/6O._7%$ODK0CE[:V-O>36NGV/?
M,SQ)PBOR:#A5W8A+@ZW4=LS6;*6 O7Y@GA:&9&G.")J,X,(C]%<O3'"VXI-K
M#PW41EHCH._J8P,P0Y(;*K-SB&V(&"6/0@OP=V><RGN>;, +VG:(VO%J0+QV
MQJY#7) 5)2*R*A(VM2>0YU'F<8:QB6$46XY;-W0[3@U&49L#Z(VBM$%9LH*Y
MZRM:F,27. Z>2!AJ<%Y/-AYC*8XI\OP.B$:WB#B:WF&XW?F@V_Y5D1@!42R'
M@4</F"#@XF"Q\U8Q>B!9.A?5H4@]2QP$#1"<Q?,YX>D($T=P"H4CGT@?]2^)
M1[V(8RU"K?(: 51,4$O,_XXJ[.4!V:H AW&;#73=X9>"Q(B8XL+/VA:Z0\4>
M%3#V.))?V"CA$!  XLA8@-60LP'#VB*ABF':"N,H_<Q0J0"';Q.^0X]&HJ+8
M#::R^C1@ZLB,R"DN<>5\D&"4P>@@:@D1^/DDJ>:C"9QM^&(H.R=APG&P(9R;
ML&R OM9H%="G/DM9P7! (XN6(V=6N#.83?IL'OM_RE!<4+TX8E+XF]"+V" (
MI$A>6/+KT'7@&[(Q&H;BHJ L)PL=5BX)R:)@'[<H#9&2-XJS@\WMX"X6(^>0
M<3)/'4I4A.:[-KMEWF S]1E D\U(&5 A1);AH9YAZ&[K;&U-XV0^]^AR-/D6
M1X^8 >B&P6=S1@U6\KZUE63EP=!3E.A&F=W9@QBT97\M UV)6KT7HK*!S\DC
MX<LMS,.*;X.U?-C&6DH"9/8B14"Y#,Y\=F$^MZ)!4N+GW<"NK,>&;8/Q_+2-
M\:S*=[:S[36@],^KF+%3+%ID.0F6#C@X78H?_TPH88&H<J+W9=H-4Z/=*$(N
MK%WRR7[^ &7_B-+2JS2I .AA*2^2561PAM/:<,2?V00POU,EOD. 7 'Q1D;3
MFF&#P=1FOFJ# 5LH9K*KZV%YV6 NSE2V-A5HE6<>I4O1+)\\&C!1Y22-!GEN
M=Y^P-:L&\ZA->?7F 26B2I%H528Z=U<!6UH%M++()R')MLVJJ][\:M1RP%CL
M$_CT&^&S>S%AI***(\&BN)AI83<O4%B#9=6FQVN6594(IC5PMW1]V5U(AE:B
M(9 -%<))XUR)YVRPA0VVV<ZSS=9@%[69[YI=N,VZ38^X(TX]GV=QH5EIA3EZ
M",E4Z@*'UCGA6<RXADI[$K[[(HS6<E*?ON2L42[$WRMKZ5()\AB@()>B@/^V
MAMC9UZO:EPP__RIF5BFI*]:6B>6LKLT5/+GMD?@00B>:%@.^1> $<T:331P=
MU&UB/6Q"A7LYRH;#UA[;-A,1ZWP-R#9<Q713D5U&*BB^W>)''"7X=/D%QU/J
M+69PD>HJNW@UFIPEC(OIH"[&["Y9&\WC2'%FJ(EIL/J>"0"[)6414"X#K')R
M*9P9[<:,LC^@B*UL1L&GP4#JM^O;&$C^IZP;9PL;V +XH<,%O""]DZ=N]BUL
MHA6_!MNH72W4V89TI@^AU/QJH;;S<$:B-I+LQ<'\?PAD'7'"EZ6*SN"WH30
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
M=&@4IC\BZTU<>>1<UL=+%=#1[GDXQY[%&:69K(MVDL>XA%;JA:)[+:\*ZLW
MDKZ+FCX3N1%PA_U9%(?Q5(&>EJ2#^M0;5Q;X(9K*6'.U%T*EBJUR=;0MIJ_-
M2,\M(68-175R!Q%4!H2^P\_\-!0CX[I&!L)UW7B>]*H3HIJ4-IIT38F;\3V,
M\+?BOYIA*=(Z:%4W-)Y@QN3-AS&FCV*F4D2QKJMD0=Q!'6_Q8QP^BCZKZ+Q2
M'[8+SY?;%#4];3-T4->Q/\-!$F(Q;39N=)?OBVI[DETPZT9#'>.(Q'2,_40
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
M\PG;P*(D*@T7Z)-EMP=S25=HY%8ALXFU)K!,1OXBI 1 #2.A_$$K(9W%Z;.
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
M.O(&>1$?00/KB(CK$2F:")&Q+_T*ZF,CA$JEMFJ#\3I$PD$@R2A[#.OP%I]
M1N4-,BJ(&EA'1.K>UC43(@7#K:W@!#9&K"BS]0&9S,H'@B2WOSK$9X\PWU&[
M0R"ULI\S*M1_MHR"4%;E#01HV)=/*<VQ 2I%N:P.Q*12- "8:^]BS6>5,T36
MKNH(J;<;"Z.TPG5Q?O$5N*Y=CI&\'0 GB)0=V!Q#H1.D.C"_"I</:%N.;PGV
M$C=>D'M$GMA+UL)L9FF30PJOH,FX*+ '0K+I(UEFLKI=&1E1.ZM9R'(F8'/D
M*LG&M3&S[&+96)#4@'D8^QY[#-)_0O?(30A%"T67SVZ0>,B[HF0KO1]9?3#R
M;"<>0)24-?Q,>0K7D#.!X9%40S=MKJ06#(U]#)G!C2E62B<;#D)>V50+&:3-
M),^X%IU_@I_RHZ+TDT6PQ0>>*HL=3BZ_D+Y8 W[I'"L,P,^OL;/G6^<&GZ]9
M6/IU6$SD]$/7WP;"0AEM^@IS@[5];3@:Y3 )$X6-V^<N2'U[*"G$IJS%S:D@
MSR?63,I=FOK)(*TU_J EYG B"B6*SG9?G)@]);<\?"WRS3<?X/?W%3JW&\(Z
MD3+@A,>)00]#,M3Z-%]XZ;+IQ"AL#%Y%J/M:^O4EV0:?V0.>&>(!(X0H+^R9
M>45$!I=1'ZFP:7O9P#X%0;FP2FWDV%5;=5T\ID3&"AA&7R$:H(N+H@9L91G\
M_6V%<C?T(_]!^"R5R0-4AP=*<!CAP/<<]IQY_B5[G8194&L<4$"B-#SJ58E9
MU5>O,D*\>_?=NW>SUP=O(_W[?/'E?G%S?3%_N+R8W3_0_SY??GFXGRVN9O>_
MS.\N?UG<7%S>W?_?V>7_^WK]\#^OS!\BS.5JW.WA@;GZ=?M!UNBM'1 -@B -
M^^0(]*ML"M^'.TB]<A,HD;^TYM685': <3EC$K2I:3L,)^IO"QJR01>DJ<'&
M*C<H-!L<\G1LH>6F:#<0%SA5]J]1JEF@#G_%2O"MDOWP*/:MXWO7X;FS]6,G
M4+) TV=,=GSHR X-*G99X[KI,WO(2Y\QI^C0\Y]M#4\HS1M4L\F\_Y@L^]B5
M9>9H667?'7O#.41>[@)7\DK6>$S&?->1,3(<K'+A4-*+@G9-_]3J7(6&PU"?
MO\)L>*+7H!8J5YGZ5;6G^&NZ/[G4M*>6P67 F_[\*DHMF\/O 8Z0]_.KF"06
ME&-Z#@HMFAIWZ@T!G#.F?*H#OR4^S_;F(F!9 ]@[=!^PY#SDEN=CM:#.'4H?
M64'9A7^:27R'7+Q*^<$CKJ5*Q-#3 CC4S.1C>%+ D3:^%JZC*$'>19J\R$'F
M<!9J,>WK,'FJ#:'9. #.T@;[13/<X#!8II,Q+_,7%"^6K.0 )IS\<4S\QR1F
MI]<#OJ4"'L82=G<>=4SF?]^%^9TQA2,*%-P#[!+&5MJ,R::_=F%3!6XMT?_^
MMD]7\84?,;6-W>UP<:&'PPI%7 T\0*OR"7]D3MO9Z]EA(/J!CS7+!IO])1WN
MWR??[Z E'#1MC\C7*\' LA%N4G)"VQJ&GU=;8$*+1Q=>>-'JF1'X^W?O/[Y/
MGQ"FW_Q^17<0)Z#??U>;5>CQ,.T$P*FKJ]>!S;$9DO#?MR&\O!, L[HQX>78
M3,ZGR?DDXXZ[1E["7HSABL^"'HE.?*@:=?G,S&QT=G!]/E!,SB@L?\BXV&%
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
MW8:$Z71M*@(-$#XV6;AR?*)ZF;;Q*#!=P#UPO(#CL3'YDFK%&_9&_-?0Q4&
MJ'HL#YOJ-B1,/W0/[)<A#%\64A+PS&86#AS5-,,V P!U=[=BM @_T&R])?B*
M:9W7(5<^4^BY/KI8YH[/>Y_JI 7T+BAR<WY4F7._ZSQ /?5-A:0K&8Y-EBX=
M$E*--UH0EMT[N$BUF0[HK4,/DM6&&B""U&\)"OP-18SL;A/BKIT(W1*?PAQP
M6:9-**H'SVU^Q#:-;?^@C&U_/2N ,<OAF'% 9@=(9I3<LP,LLQR8*39>.HSU
M2Z\I-GZ*C9]BXZ?8^"DV_CABXY7A\,<> 3\%O?<6B3-.T/OQQ+7V%OH^Q;7:
MBH^?XEHMA\U/8:TCQ<Y/4:UC7F. "6H]ZC2H_J+G1\J#.H:$O?X"Y7O.V!OR
M57?9P^;F+[K71QC?924Q*_MP637"'"J75<\)FW-:/ H,%U<+$3?DLAAKNT\:
MJIZI%W)5V0. )ZV'I["5* YPI,F?K*^?;/*V )QO'6BO0<[J(JD_7B]<&?5F
M !QZ/2R'.EY6N:%ZJ%[(%U4' %["'CBDPA#:?=C-E*XWI>M5\YFF=#UHZ7KB
MV/]#Q#]_DB)]EBH/_O>Y:YT]62'C=M=! 9RG_>10F*,\5KY5 1\6]+D/M?+2
M9W]^P^0/JIB=.UL_=H*Y]T^J(G.Y%KK1.X\)X%@V971/&!_ERI?5)&\V!,S[
MQ+Y6-:CJX@*X[Y"+5Z'_)]4^/2J*_M)W]OIG+KWSL+@YT=^2#?+H\35_C'C*
MC[D8]#,;S'O0IA+3#RU.4[C2EZ_BM.4(XE69#X ?:^"E.I1L5@AYFM*9/\CZ
MX#R/)J&".0&90T<FI0)B6BALT!K\.W^UILKEUP@)Q6^$^0!98@.*W@B$/,T-
M<A&O$6%>R9&/<<F\@,S)(]LH)00]3:G-=)?"#^-IGJ5) 5G$1R:O(FJ^%&'-
ME9HL'=>*[-9@ &2J'[THUXA[HI*=ND=OD!.AQ6/@KU0OHHXQ,:"H[V.380E%
M3U-P"U;EN#J$;&) 4?1')K@RBH+Q$CR4 D5T9.OD(&@Z%:!T 3"^@:8T/,T-
M\A#?-,:N6)H-T!ENX\JH1(NC%ZY/&'O?_" PW.X&GPW0.3NP<.EI<<SE=VX=
M9G&M4>R[3M#XH=F/@Q;CH?U+T$W5>:3#6(]QG:KS3-5Y;*0N:41QJLXS5>>!
M$2XP5>?I*_AXJLYS<M5YCB'#?7J2=OS[*W"E&(ZGC%1OM72F,E*VBNM,9:0L
M%]29RDAI;(?>*NE,=:1ZX$9OIMST.NJ4;OT*0KIU,57XBE*K@).$N<H>,-T!
M2BXK\0%Q\9!#5ZWD\#5"RR1@11X:7RM\I[E6V-\0'.:<I9/.TEEG?-KIO@#(
M?<')EU ;\%YA*J$VE5";2JA-)=2F$FI3";6IA-I40JT_#AU3";7C""^1;'!3
M>,D47C*%ETSA)5-XR11>,H67E"X:IO"2*;QD"B^9PDNF\)(IO&0*+YG"2Z;P
MDBF\9/#PDHC$!><&_71P;- /O]\YX0H)'$Z5W\9W+TELF"[NI0I.=F@M7 VU
M7^TZA(2"4:*@-7G]3,FQ2392*E9^M^C]D7 \)V,%T/$)Z3RK"5G^W:+W1T?(
M,J#07,0W4X#>J03HR:^A\O"OI2QHR:PK3!>KDN]FB%F+W;MR?/*K$R1T[W#8
M9V[N-8O0^^[=^VJ$'AMUQH>=%<>%'X*W)T=6]:%4Y2%#Q5NP2A$)M2#"%6WP
M!8<D_WCF1'[$^J>/(#!;SO]7@B)5N-ZP4XZ[ 5RS.V1T'SLQ9_A-5M-!<5^K
M[ $F=&\,L2AN&DJJ6#W )9 I[W<U?6#<[1J(K@&'0 3D?4(A(@XK43/W-I2D
MK'973 ^@R^<M)8G8P&K8%\"EL9$D%EEFB-KD8=!%Z(VT&4[>B,D;,7DC)F_$
M< =EP3:Y#K=)_$#G4NBJ\N9@O+]C*ZIRDH!CK%)%576 H9_J9%7'%1"::16P
M&\P"]<DF*^C^B>!O\?J.:G1*';7Q* "T5;U$JABHQ1 45YDK""=AW)B1HHX
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
M;"M/A3@Z[D-3(8ZI$$?3HVLJQ&'RDF!^A+#]GN_;=_=?=6\(JOJ\H*(<&DK
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
MQ>S/%*7E=1@[X<JG)A!3=F.9I:CK!*":>7^<TR$+AY>\ !0]5C-U1\:]>C,
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
M<H4F7)U& 1>7()O(ZOGE03,'0%0=<BD[I'9'OK/4-Q)PU5YK%7'%(M] R-4
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
M6"'0;**2R#HG,-F3/B"_<\5&$J$5^*0BHV9Y:=P148-2;O@E1?&V[SJ#6T\
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
M,<3YB:4:0I=+-!R$FE"=W?W@1P$"RS836R?W" MN#O*K@E\\?QG2X!D6?OG
M!TY!>K;C.N("H7I2XHX:<$=T#]ZLN$?<13Q>'ND#I(Y92/Q(8V(/$6^+"XOX
M"PYLAB(;%:<<RIN%8N^DDV/K!OWZM?P90KYR8J!9Q5L/_3[&P-K"W_2D J6+
MQ:'AG33-@/LMR7)/?,Q1.E[L\*47+'MPOSK1]LQ?8=YA8=Z]Z<$:+JO!KHX.
M72/ATSX\7+?WUUG1"+BU%[@Z&%:^4_'"+"N@T_"$3R?G')P:*,3V0;+B4/7,
M6RD1+2I_7UJLHDV)%<5'QWO)M" <]!19031Z%RWIQO'@R:(Q=3<E#GI@7^26
M@:P=N^M7]S8['54_Z^AWZG2]O:Y'&3'"WF="4C/-CO.Q^?S6LP-F$A4'NBWI
MD=HW0+!/Z1VO@2@VK_!/1;(%ONZ19B5M?QJB+<*,DFHE0]\"V>KT^Q5<H-F+
MBSYO@6$_68X'CY>S;L0]K.CJUDM>%!WFNZG4_Z?BW_IOHD<Z+E?^IV%G!1>@
M)&NPF[P#R]^3Q'98[DVL?PL,WN-W<[6U@@T-2;0-_,.&<7O@KYV(^ %QF4)]
M"39Z\L@-HZ39>DWM:+[^[#^+7N[6N_$#ZFR\V2N;97B;PG23I@W"2>XH7).R
MO7EKD"<FP>&;[FE.-IS$74[B?")/N7;XTR[1#Z2^%A80&IL@"F<Y3G;)=JH5
MR1M\OD?25.5D"9 )9$#9D(/<^?!M0&:%V"=\/VR6DW%_DX/U\("'"$!DOB8I
M)":7Q*!(@FKXG"SC_A)GBC$'AYW]:$L#$_._J<W?60$'4H<[]%/ 7'3%_,<,
M+AF.U5;"V1DWPRQ/CZIKX)W3*-K=NL.)Q9-,_H0L*;1P,G5=_X7OU/'$*ZP3
M<> 1Z9!Q4:S>R$RB9X\L L@I9B5^"5(M1F([^0H8LUW[AV6T/KCG^&M"O:$,
MY)'?QB,Y(F@B #$OM(*AE28&YH<?A5,\NH&D?94,,:AO[F@8_D0> O_9">$$
M(CC#%LZ X7L_VY-*)V2&]0,S1HQ6^>D.@Z=>AH5]F1Q?*4$^2#_QQ6/C8Y>N
M,G@UX[_*"KA[@'JL,MV7E\;+[0HVMVVMB6B)R/L=SCW38.E7#^B&@)L-XS2N
MX#ZD:9?GZYA@,@Q%L^&Z"C@#3QUKENRXJC3R%40UV]NVR$>Z9U93L<B7Y>TF
M3D1WPR81'@9FR,]X2D 9[(+)52]+BQ7<,X +'HHP&YY/IJ/4@J%1"3O75,%)
M64WPYM+W5I3'.UY0LEKKU$^:[)'T@15XRCT(+??T@95AEH5Z=4(\'HFSO<.6
ML#39@R>#;,@C7SC=0[1.]&O >IGY>ET6ZLVEX([^EEYIOEJ4BL#+$6V!#+5B
MQ#7[ZS7J)2-][N&2+AC>D-C\O,F*6+#E&XH[,2G!Z)NLG*.1,8OO KX*L><5
MSM<*)T8TR,3)(%H]ELZ*N@I$/G'2!J_[W IB*'OP5!R=X,^YG&W=VKQGMX_I
M#F\N#JT$P+!''XQ[LH"]R\D[/GW _3O$B8.Z:9UQ[RD>&S Q4)S#*061F:!Z
M@;BP($ZRKL<FC^C.2^$=M%78VK9M<I%QK@VS^_B]@>MEK5><S..GE.!U8R8<
MSB#='+P5?U[YUIN%K*&^%/*1<E6<\=4&?S;F4:N'?6C3$$7'\Y]!ID><YUR#
M)O%4^RWK0+@R^?DZ^9;GP$.503T3DL=3UW!5_ UV?L>!:S,RZL#H"'(!KSF3
M%S_X W:H;6OO1)9+K-5_'<)(#$PRML1Q8?@AH/ ^5;RJ6#U(*2N+DT>5$.97
MHPL*XAVM5)O;>AM%2$V6F<V.6?J%F+P]CR$%<'7@E9?&'7HU**OR J,/OSJ#
M=64)-AN!?:&LR!I,WMW[$25_.=W7,A&7,=PG-E3E"POS]8WC69[M6.Z#+WKM
MV6O$6,1A'?K,8Z/:H&A0JU_ZJ.*^JQ<K>**MZ-'P2F> VGEH0E)C^!)D8@Y)
M["&_9Q81R20C28)OO6=FJ!\<V<"\Q.,G17"'5A$>.3[DO^-MY(56ML_ % N;
MP.S+2#?9#QX3\?)D;^GJX-+Y^B& UXFCXP.#$4V]%739>XCZJN3X#:KCCK.F
M?I!C4+4NWOALC*#]7$R(GQ"N@%_M3%5T2"Y?LJR<BH87:"PXJ@RW8Z\.8>2S
M7BHL?+VM446<C;HY]G1!6:D6\N7D9A@TG<'=<:G$\=9^L(L?@F<MW7+XY97(
M)S1MYDYBEKBN;B>&#;NT/(R7LN!.U1#00U)%9I[#,^*"LB_>R)E&&.1_\=B,
M_,KGSW/9T&8KW[.LJ8*3"YO@S1U-K"B/MR-7LKKUW@@()P>03F3Q9A^T[!]R
M&&.V)?F&KA<4C\WN:MZT4:J(.WS5L9]<.*BIA3>4&]C>TVC\SO!;+P-Z( \=
M57#S]!M-/914&FE0YS K!32O,<)@SMO=2R!/"%>"*X3UX+[R0R/!.K79%/3
MSP==PS30%FFUV,\NA1\8TNG.#R+GG_SS4B^4#6GTB<=- +K]>)*22HMLO*2B
M'6&'\^R)(42V9$)26S@ER=9,R EI32K[X('F$A@]NI(L,;M%<.-X3D3OG&?(
M"!PQ9+#E)Z9(:IL$"@)P$U9S7Q1O%-35QDLZ+3"T#8)$5;SM#%?ZN#:2J4N>
MM33X+.TUI&]E/+!:4'OK^:Z_.3XZFVU4O+N@7@MW("BBSA_EJ*R"M\FK&M[^
MZ$4LGV0*B-!@=FFM;^"S5R>,^/9(*M_($Q_E1%:WLJ98%7<L-\&?>Q-#H1[>
MJ&YD?>L\U37=ENDEMD&<<(8;69!7K; I5!MM<)>NLM75&650ZUEQJ@YHDTMM
MO4,WM=A6 4R:)LOS\N8>*A<TVNBN\8UBO)=(&24#U&'IBQ/DQ1Q9,3::Z,L_
M,GZK'+]I,BD_,5Y;:;0D47*JO+K&*(-?QTGMND#OZSBZ'UENRYC6 ;LG6 JY
MBWL&)GV%5OP5>F=83=.23,7QS=A[^AHM7JC[3#_[7K1M,7=1$SI:6FO@,]5Q
M4+W$4=)B$UQMPTR/&>A&2P-XCO'$7_'3T6_4"A8OOA879K+>$OF<>*@]Y\2"
MW@K5G,+I96 VX<DM[-/9UX2 =L+4CX!9=#F*1?J_C(10F.:R P7MI;TY4I&]
MU)%60-2;(I8<(!/4 @:,A5RT.(O%_=_&02\WS.G:G!<+>VOD(ONH&[> I+=$
M+3D\!I@%](^$6+2XB@7\CR/A%596G^^$L#?'*Y*/.O(**_NF>$7&8X)76)VQ
M\(H.5WW_W<?O\//*=,W\IY5<3B6^)88I]%9[FLF)>RM<4PQJV/7=G TC(!V]
M/EML:4 M$&GV2L<GWU^].*ZK=G_CM#1NWJA!67PS(U<4;[S7&:SCSD4BV>3M
MBL2&NYJ#V$7E<+?.4F1RNSPKA+=%EIO:MBUF[>_.\#'I_K"9C*DIY*(/Z.KZ
M$#C>YH$_OECC@)(JXXBT*KQ%05=4'G_\55K=M;G"848AG@CY1"@P&I6]()YF
M#S5 7[A!$*^+P/)"UXHO(C\P?VZ9J?%[7 SY-'MWHL9CS22-([I;>*<HZ!N(
MP<\%;<!TIPA)*[_3G^@EF6(B:3;*'4-Z2))%P#7QF^4%[R::8)G9;N_Z1TH?
MQ;M'=XZU=%S&?[3FL0J5>K@91!FYS!>UE?"R@[KIK2_VQAHNDD>T)!UF'[CH
M'SOCCN# (-O^#M:-,AI<4H^N'3.W'V.C'@)_34-X^=AR;VA=9-=6PAW6:IA/
M4@95U, ;T(IV=VW1LGP""LR&\D"H]S+J-37S?I1XS5-8I-PSUU;"';]JF,\?
MGRVK@3=^%>UNVY+C1VGC]HRF*QX$M16C=C,%9I($+7F2\>!0]Z)&<4G<D5J!
M+I\ Z*P8WIBL,E;'YLJ=[VTN6(SL"&@BF2JCR:S$\^TWE@VQ<IR^.F4K284%
M<;?2<FQR(STOA;>-5MC:.LD#%TD2F>1WD(J@*5[[.\LI2^Q04G1,S3&/K[Q!
MBG)C:9(GUFIKE$*NQH>"'NFS[SX[WF:^YZ_7>9L\D/*7@I1KXFR-+="G;P6I
M54/^6%!#$&V;L/1:4/D3018)$FN(GYA#;-'ZUTGK9[7)AGKLSRZQ_6#OLW*4
M[ _LIY"">-L]K+C$+25K\5PC"%P3-N3PX<?3!\L]2E<A7Z,R]]+]8-]#XN!4
M#SFC%V,/$@WNA).VI8]0GZCG^,$3M0],@RJ7JE1"3*/*F%,&K:V!G#S5[>^5
M-X'H0FX*^X?;<MJPA^6R_MTB-)!8!2(&&PQZR1=M?G&G8M)<6! GH=5C*U_9
MP3UIKK"U?0+GW J.P4ES'MR]M:.5$^>*XF-JEN<XRQMG5G8L3;3 8DT-=4)
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
MP:*1P?$?E&TRXS[:$"VARJ\;8^9I>Y3&BL8AHB7+HS]#0WNR9)EX.(U'^H1
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
MEWOVCLR "S4S'!]8>*N/$RJ=N,N!8H@/.+T!GE[\YL,&H\8XX2#*4(X 0SS
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
MS@%('>2D>E-#";7)DWV7GBVA1]LPBA_0T4Y$>NY\&LZN7G!@/'YS(+]90#F
MKRVG'5)$#^/YN:)FGE:@(IR.M!@8^!*DUTEJ-S,M*)0%<&99YVHR0XMIJ$&S
M+5B6L_V@C=<P! XJC*^K/<SGT$%FSQBNJ:6U5E8+H>\.PF*,CWZC("U/F#HD
M=/)#<;(E*5V[FILRV=V]!'73=]8O:!T3V0YFX"LR"OPB0OK0U(O]03N2XJ>@
M+2C8^JTYDNK(LZ21X1V$KX&BL>%K$+@_H.?=+E<V#(D0$=L4C-07-@8. NQ)
MVO^KU#P]J/A[!.:)=P?GM$N4/%6-045K9E5OZOL+;&H$"$=-8_#1EE=)6WN5
M0P@'ZU<@<D)(>'N8OX"0)-GP(VQ#UWZR)*DW ^'X.%'Z906<6Y9U;"S8.DA$
MTE-87M>\)93M;?K44/#P&J/5V:SXD,HLO]OX"%"C:%.7/=ATZSM>XI+,FS[X
M87N["QM99$>/KUX%(6ECI7*D:_07,]W%OP)R%3,5WC%EL)/9Q.CQ.)A0)+VL
MKAR;K\TR>MV5T?7'"J:S02HA%C!ET#<+E;U))(/DF3I(4N9?;&0SW\>IH@!
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
M@CH'[5?HH36RX+/9Q\?5<^*,Y*1 4_\; U4Y\#W@V%A/^(G6SJQ<+U=>L :
M))*HZQJ%E<9Z9>0?6];I9Z66S"7[JB&WXW/T%Q?S[?!EL'R%/M'394"F*L0R
M3NH+W>R-N%PBZX9#3P%*AD!'%N>2EI)-[P$//7H^AL$<28?P<@.:QAMV)4,0
MTX+)T:\,TW?E:/*BH(%=R1 TM&!2]?%0?RLKT165(1AHI?[.9T5#WE>^"_S%
M"PB75^!5[)W%8ZNZF\#$/F%J$TQ._XT$8;HI0I56:.@$;*_DR8\P:7HTL::D
M+M;(EG<Y:1H?$V..1KU$O8/QC>V0M2<C$+5:4!>%BJJKJFA.WC0)/2WWEAEM
M6E=4-[5Q"K]):PSF>@TG?0+O@?>.-G0/*[*3\Q?E?M&/ROEJECG"B4W4NL&Y
MI;YS+MZ!6]6>%&JHA(_VS\_ 0=.(RZOTQDJFZ+L=HZ,_,BM/0HSYM%I0-\VW
MGT\Y>:,J6Z7*&K.0TXKKK3ZJ$IJTU\!@KW/K8".LV@-&(8%+&&:/U4^I]48;
MA7'!8-&GK;&B#[\_V?ZB[D7VTF]ZFR'/*-K,#M7A.Y .:HUOYU==]- LS1K)
MMUF,]B_[;_8'7"9+JO1+OVLG?T:WRAIH9F.4H]<WZ+.U5_Q]Q-IK9&/T:_Q?
M[1#B<?S)CNNF(UHQ773:?7W/Q1GU'$J=LICK^FI!W13&)7:VME2MY"]MWW;M
MA_![]!C")>G*!?IX!U^#D+Z4;ZY5YF2*&-%'1?R+^)9\ZCD-MMYYWS7<%Z&4
MU@T"LMPF; 957PGLK'O,WL-\9\>:KOPN@C ,?F /L;U"OU##RD1(Z(T2MJZK
M2.G,N6%#!S[NYSN)1@7-@@(G?Z-?=)?YO+ C&#VCOMON@U^<=(^Y8$"O;C(X
M!+D>?5AAW2CYW4?,N/G8>!DLEY#<N;D!X!&$#M;N@A;4TIJ>6:"2*X;1ARL6
MQ<$!''.QL#_KU"> =W9HC=5EI4HG8BY$6O+>0ZX,A7<?[D",>Y++Y"&)H]CV
M<8;:V1+?!:5AJ*&:8:AIP^T8L^W> 3L2O4,YK8EZ)F3TCW9.^TF)<M[]<6B[
MC"( -N%II#.;@8I\8FPS^2J747MB3:=JTM;5:Z%L?ZWY&;UOH9YW'_RP/6$$
M;&J-7?5L1OIR+_0_\J*]RBKP$3$TUY1YSI*\BP[-E7?RLJ'YTV3;U"283X*\
ML8F'"TQ VMQA".]RD;"DP,L@HEX>K!0<CWUR]KV'85CAHOGY+0B)=[-)L]6"
MX]$L9]][&&R5;H?8"AVA'KG4)_-%687J*X]&C_::E0:JOO!X%"O0_Q[\F@JU
M_ 07;_'#_'N4/H;S\(J6*#Y^(^?ZPWG#\6$W05@63E-.D X4R_(^M:POEJ9X
MD<UD#]Y4;8:.WP 6%G!G[^C;1<UFDW:T)TIF//"1PIE9SE.F2/"V"SL'\9EF
M=NS4!C,U9 S!#"]G/3A2JYCI?V__S8Z3D&3,V-W;MTY?-SV:4O?WV^;J]O?>
MF++;:;S'KW-/;6;-?$EVE? ^7MZ6W'A&!*D<FN55X!4-^V5R02KF(8?%F&G.
M"@&),)X=%Z9C*&BHK/40?#82V##>%!<E8R9HJ)R9Y7(1$@G]46=1,H9BAL:9
M61X57I%TQ$I9DI\MZW3L&*GE2);G1 ]'/5,4WWTW<PT ]_K#P8\@L6/16M R
M!#5"['5UI)RG$/+!@F0>5PXB,1\_EVM;9R"(,)"I^LR,T8+">4-*9F:ET:N=
MQ4>F_7-3$K131' ?^$X;"&SKC1X%#:SD#K*CGI'0I_=\>W\GVKQ6X$ D+=_]
MFMBAC:8^4;_Y235DN=#*7R>E=B:V[TZV+?7N+J<E+> 20U/JYM94!EX>!E&Y
M?ZSTSO6%=3'MCGHKK03Y&1US%NBZET_IB6THI751?PO=514OPJ-IFB^]>2N
M ?I;N1J@042A?'!H9E<A,&@9-9/5REO_"O'#,E]#M&UU'?PP\3=GM7FI./V"
MGEY3B,(84-"LQRT>9(E@_'=D=@?7B_4]#G_ 5STW7[/>$^ G4!;@%VMJG8]W
M7NG(MJ335"5339GUC&WF),.HH3THQ/3:!)1FWO6;:VK>OILMT$!+%N:/()P'
MX=+V'7!AX]01Q;?PZ+-/5YIZPZ99RSLS42_B,&]NNFO(+$>OH#=>NLX];#95
MY_^A#"M76>//;TA:WWT81_>!_PZB&+@OV'>.;UD"/R):P7=P[H/XGR!^ DZP
M\.&?6]=4<5CI2E-[F+ UO3.J]"(-K0('J5E*H[=G$,<><)\0NR%T8KDXD]J
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
M@BT+9^L'S/<A0!-3IW=8?])%.?1NHT5/#+<0#80Y3(+U,5I+>?$X@%'L-'C
MOB29Y5?(^CW+5GVO_#[PW\G.B(A.]%[Y:9=[Y9NF)Z3MP[URG>^5C_-E *.&
MOUY%-.8$[WALN;>7@/$40+%(B?]S1,PZ,3%/9J;8*I :96$"%IC9_<N%=,-#
MHW[H*F4P)"=A/^711 +*M\!#3<Q6JS!XS]XERE9>N'NUN93%*NNJ*(;4MZJ2
MP.KX,_>W]>_<#9L\60-L#3TI]"1!27DXE$PE7?>;F_U-ZG_/-,F$L/S6M,-U
M/SB3[RT0D:>QR9=DR&_'SYAF?$9[H$VRO[X-HK$#!QM1(V)CDS1U.,+2)RG'
MWAG" +(\Y%CBSO0@-D\,UXN#C2B4LZ0D3IX>IM,Y/'20C45=4_MM!$,(LVMV
M)RWOFW<6G*J]!&?K![-0(%_#$C[)VI*5;_4/[81BMWZP$P7R-3)=51^R5.ZP
M$NY06=_'2-]JKE&98T_M1"XIX]7XMR<:'GT<K*(7>7;-BZ5I:HA]//@X6,A0
M(I:5)JO9:E2'%S^"<!Z$2]MW !'H=Q_&4=M7K#YWB38N]"2+-R9].3QK=0@_
M[BO:1N&(.I;PX]T1<8QQ0BEKJ %&_'&IC"X@&4:U52@U"V/,<&@OPZU<?)<K
MCKF/IG0#9S-86AQ5RI*+G*#J[D'O.ZNLJ#;8NJ&T;HH?3(DUX?0"$CH$90\5
ME&TI2P^E:J+L28(]/ D^$LBB?7NZ@[_^=X+V?+<^6N\F1%V]9^X4:%H[V/<#
M0XEX[RI<8P.XVPBS*L/X#80O;[8OU<.IN&L'(]--^(=P<!%ABV>"E+Y.ZZ./
M![/45@L&!J^W.0)JE#<ECV1!#;(/_B1T:;_M3B>A'QXJYA=Q^4[!X/-;N?G]
M-B%5 I;T#+).L]( HM1OY];I>M#!V#31@('!^&UDG9X:I$\,]S4[U;5QL(K>
MI-@U?%XJLEEIF-I(@81"E84@.D,,WX&] [LF(CZ\Z\PWGZ:7VI1M3LK-[YVQ
M:"'@O7LU6I(P]=N>"/:OC(8I@L/G@[FIU\#A?6I.86\NPBF;OBH].)B4(AEW
M?@Q[?V:Q3* )0J-^4YA(YP[&II_X93W#/?;):XQ!? <+ZE^XLE[EUNTN\B&&
M[S!+:1_#MV.#_44OC,<&N1^>[?7)5-[F#[:D0L"'=[@%9:G@6=9NG3K8E3YB
ME_5J-VKO-=#&WMH$+[:5\="/O\KKX'[;H;XJ.+Q +BAM2EBQLLF/TI^RLD^L
M*7XK>&_L31N)Z_6LN>RXI<;M;.'-7ZGQ2B(-[YTE*!:M7F^3JX3\L#%\4GMV
M,!K-9#_,<^@CM"K:<E<7VZ+U[V!A6FH@MS.9"85&9&>4M:VR=5QS?PYVI(7$
M<[OI-SI"=3[=)[03#"'>%1+I=DJG^Z5+.MUM1P[9= _9= ?)IGN*!J(OAVRZ
M'"(:<_K4CMETU8%D&-56H=0LC#'#H;T,-<RFJQZ<S6!IX="6)1=-LND6UEAX
M0406-D_/WYDY=9EU= /!8 JM8DE<3H?\ND/EU]4 F -/G3U)\)!?=TRA^1K
MOA\8ZA":+W<0WY/4G@;&YA^,3+WP#_EU#_EU]5ORC=\L96GAD%]W;_+K[IO=
MZ23T0WY=?A%KG%]WWTQ(E8 EY=?5Z\K, ,+4;^_6*;_KP=PTT8"D#+M[8(\:
MYU_\;%F?IP=KZEW 79/V[D_F*J/S+Q[,31,-'%('&Y)^\6!1@\GXD$-XS[,O
M'FQ-!_$?4@>/-\3C8$']"[=SEF"#,K_M8X3'P<;4"U]6AF 3;)"=3:5PFU!%
M]L5*\P=;4B%@61F#Q[ZFVY?LBP>[4BEV6;F!=;*V-H$M^YY[<=^L4%\5'+(/
M[T/NQ2_6='H(W5 @<5GIAD>:RD>_W(M[8 F*1:M7-E^-LL2--_?BP6B4R_Z0
MQ-?HW(L'"]-$ WN>.7CLN1</=J1(XL/D!E:=>_$RC!+\3=M\BV==\BU>/CU_
M)]\?4BP.D&*1,O1B)1!#:HQU:2I>-J,S S(;MN)8P[P@C:K?66 4UA5W<%X[
M0_+6-1X4+=CO(9>2]!79ED'F?5EF6>-US\&N5@D0&G6]\14_@QC-\>ZM?VE'
M;VR=U]<Q7O<";'>]G2\YVKT1!4TW-9J*&Z][/HZ[WC(?6NT]K/^.S=([)\N2
MKC/+BUAL4OTF1)-#[SME3;=U'G:[WL@==(ZGA>.*K/DY:>P--MKO ?H]_>C3
MNW3KHR_!B_T!HO3/NR"*+L \*/UT;8<^<"_6Z,/_3D(8N= A3CDQ/]/9T?&N
MGREM8T(:V7[\"^[$?TS2;I3+I#V9O*[QYTFI,_I[G382W<J XE+BJ/&[)/=!
M31-U+V@PRY9MX]RR3M0L&3C%MC,2"'&E22;X39]G2?Q&Q@O&HQ3UA751FK@.
MJM%5 AQJJT#F"Q"TXKHHL84B>+3(8+('/4; ^7D1O/_B! F:^M>I&K,/6PUF
M7_Q^.=O1U?8'_;7"$.Q6+PT,:?7^@9CNOC]3=/?]V3#=41A2_1  93%"3GTO
M2=<AB&K?-:&6,T1Q8OSUX)CN:5%Y1WDSI+&\+GKMLDYIQZ1J(Y6TR,&[N1LD
M0KRAAGX"_<7#"NVPR::MNM7\0,MTQ#CT[7!-1(/VYP[>B@<>ZMKBUD?LH.TZ
M<YW42XNZXY"-)=IJ:SA1];!<4.PK07_BVQA^!)Z $[P#)!/?23 G%^M.?A*+
MST^"72!9!R9_R;OP'Y.\$]A+LM<>$DE.5]D>DM.C(\LZ4_L4<X/86GA(-EQI
MN\'NY"%1J31Q';3QD.BOP,X>$JTLKUD1[3PD?>JQ%P^)GEIA"+;)0]*L 6,\
M) ;HCL*0ZLU7SQZ2$2M.C+\]\Y",=9W2CDG51MIYD7.)=VI^O+N?O  ^F$/:
MGH==27<TL#5:7?.TX';,S\I?93T4@T1#+=,PT89=26-%^7D215LB+DSL"19:
M8$#Z8F @MR,.>PM\<CUR7C&!612!.)KY[AVT7Z$'8[0N$G4\3AL<C]L.X)M_
M>1>*_LBT%Q/;=R>%?NR;YW&J:M;8X #W*_MNXZ..0/@.,$)FCA,FMA>1?T$1
M, W32U?R9:,\MJRI)CN0>AW2)YY>!*%PV4+9I53819PDRX0$W.*3HPI@.&N-
M%@==^!O]9J7"]V,8K$ 8K_'M[QCG)OMW E<X[)IW&*$2&"U )+$J::&B= =3
M'",OT6<87]IAN)X'(;F&@\=)I(#=>XDMJ9@'F!;\2GI 6 _4? W14,H+#E+8
M/ S0V9+T^&T<Q+:G>C(IK(N^!H'[ WH>&B!OD;+\!7SU0"J+W<_-T&A'UR04
M291 U^N0M?=@=8 <.4D0 A.I82A,Z+SU\F*I8M\J_\ZWKHHQ$.!FKNM]QS(&
M7MI./KR[U7L0IS&,.%=8J@G/"W[8?N5-".'ZH]6]'$Z[/OVHWUZV$2("-4<+
MCJX\=GZ*L/LDP3LV%(8Z!/[=ERJXZI1%8"$1'(U#S>VYD_66GJH3E,<P>(<1
MR1J0ADO?!&'A9QP)GR?8WQ2=Q<^H PE"VOH)H5+X4.6DX5!ETU QB!N-Q>5R
M6-43M#B;Y/TKU+-C\LNFFQ/2SWT[=#DY7&^1=&=#]\'L1.%]ELI0.-HET/5\
M#G#&UJU$\+"!AR#?0?- JNSX!B V;6\SMI0*4V J@?+HX=B7#$9_BK1EL20+
M2AA'.P!*;6/T4.Q?&JJ#;/L")9H.T)HN07;\ZH%,3+-E$,;P3_*[&/R:J)D*
MM%9\2SK+T@Y2:,,!X,(OV=051),%U@;$#(I JHF:J9!JQ;>L,S/=('7YAI]7
MN/6O?9N\#-=F:JRG82I\!+B5E 94.] \XKOS_P1VT?TA!IDZ"J8"AIO7'K*(
MRG!_\NQ&T$\AL"-P!=)_;_T\?A&-MM]]!X2Q#7U4]3&((-E0USE-^VEIM+@:
M6B8]9"358KC*1^SVYS;="9<%/K6LL[-Q@+!G$8S^,) BETT$7E.L(G=]4Q'$
MR:D&QX-]887$S<S<?R513/).BR%EM[:I..'BL[<SQC'?TQLS!CCXRG7>V:V]
M&U(T=$(P?/Y4"MA&S,/T_.FJS>'Q*7\J,-STI-3V9-OXY&H?CX1/=<T IK<Y
MGU9V,$)<:9M ZMY> J$L8'D%790GK@O&L,S'I=;*%,P(MJVBBT);*H57JPQF
MM=$K6J:A=I_ ._ 3\ S"=^B VZ?GVM1&G+7*#)]84^M$0^TRE%.G7W&.54>H
MT'R12V!7)4)/9<4J;Y"FV_&J.AR$HN-9!.U'VX%SZ(BHFJ.::1IOR[(Y(1>R
M$K2JPT(_RS(JAU2;5ZU "0E:=31HJB)XM,A@4I,E6!9+D293K!^<647UUQ]#
M!54-<K.H>G75_0H4$E,40X='\;5E#=,\/X^J%UV=58^/D<F[M(PIMU1&%U7+
MF&F;&:.NK11IB3FO[I3215/\TF9HJ/?)D[)]01W P3[HA\_TS4JED+:BYQH&
M!7A2/?4U:NT+C]:^&*@U%D^J9ZU&K9WQ:.W,0*VQ>%*]SV_4VCF/UL[K.#RU
MIM/I>+7&XDGU[84FK4V/.+26%S)):TR>5%\0H#E3YX@BUY*DOJ0!^A-@3'7
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
M NKR*+TV36GEHZ 1(.UQ6Z?7A83:Y>>T=0N<$\3.$Q'R4!W)0&+'H5;QLN(
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
M;)2Z_2Q"NL.,/"!8;1CDYQCJC'#EX"A0:?.#PY>U?2.>6&8Y?ZC^)[^/;Y:
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
M4??P5)'D28#X?&_X_>O]7;UW^\</]O&_?_[O8\?_L3P--6]J".0JTE#X>2Z
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
M]N[1X>7I]>$9,.7%UZNCD_9-K;97W5^.*\_2HSNU0C+)G\$**:I, :C,\*5
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
M!NA@ 3(,^GD2 \(<ULCF JZ67Q96&*;0THM34"U#C[P1,)7(>G<"GU0XDB(
M'WG4<4/73N8'- Z_= 8 C3 \07@W;8Q."W:1F(TB&2 [;\D9U"G;9)LBKT@H
MAAE%DL ;RCP=?$,!U\AA?PY%]RRG@\F320J2QJ0,*0 5B(6 E".GWA.>G8=J
M4[ =I2SO  8]K@QVE](MDNKD1 (^8,,379 G,C$5>NT#194<&4I'"8DTAO2,
MM!\%J044I,90_ 3V>F"%SKTE(A/2F@>BQ<)2@32*K[A O_I43!.6 ;Z[#._=
MT^>TUBQ8C((,IAX)0X^)G" @?PAB=@R^'WKZDTZR08P3^I3TM?)PPO4A#?>
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
MIV,4N/THQRC8J:C@<>HG1]5ZZ'Z/'3N6GRJH$CF1@*1#E#)3:XJ@0=@YKO"
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
M:C/%-5'IK>@ BR_]7"LU0RS1"+*4J.O@;0_:WX&HM<1;;"(IFZZN>#'V^ST
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
MZX/Q_-NKGZXOCF8A5UAWMN,.F)6P[N0C$+)T:S-PS9%#UR]'X7461_^C!$Y
M+E;*I6@S$LK1PR1VIL NOM29I;_&-[3_ +_B+]],("2!UTHL0"$G%(\>&#XU
MK+V,=?^015!?C:'QL&Z=W]!(W@^?NU0S7:KA?(7"2SE822O^9ZP:C3E:6!XX
MX6=-*+A%W:S6 XZ5NN(^&J\0#CCM4ST!D6>X6LO:R/,8!ZU8T&F)30@P)-8C
MN75J->&^)_88VH]J:1*>?>8:(P!...<F<N(SB60!5T%*2"OP)!+8#*LRZ3PL
M332-9&!R[DW-,M4M![A\(;B0I6V;N+"VC^9[NH3Q= 1Z7A/T+U!=0PR-$NH=
MFT<14(_WR(^!?=^9J/IC44J?ZWT;C-'>>-(M[X)SX8PH($H6C_@U @K,!U\
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
M#D6/DC1D=]F\Q\0^-7,P!(,"V*,SAA4AMX#'ZL'?26N$MEB40X5,$.W% X:
MD5QA4L]+)-LBYRX &0!0D"M*[!2T1629%&5D>'0E_A!:L/);CH^).,$+12\$
MGAL /\L9#E"#X-\];J.N$21E#$P;!G,)P[$%D>KYN5JKE^I ')8%V"G W^7]
MTI[ZFP;XN;+7C#V:DUVF02 FE(:NHKX)0J$AAZX)&P68:$; \2G3T+ U84.2
MR$.WC7@ :9P&.]3_#DSA^0IX1=3;Y\S0G0# K12"-(TCFPLL+OV65@/+%8)>
M+IW&XO?JQ7 L#8-BE<H[+3%F8E$A@)*K ^CW342>87 R)EWG'C;M(P?^7*F5
M*DD,M$K5\ %ZJ#/(*P'][+/1+!Z902#U&0126Y9 Z@N@H%HJ/P[QARF<69XS
MSR[DVE=,H\6':;.F:',2,"0VM&Y@/0[/V@+P+)=:29*NEO8CJ?,@\6YQB+F6
MAYCS$',>8GZ&VIF7U=#H[3H6F*PH&2FS)CT_,JN8-09CBT)LTQ+]-4AP*:;H
M%0/&86YHK+.X.X3F-G97"<W9-V0L4:"1Q"A:\P9&C;AQD+Z*7E&63\!+R2-1
M;Z<C%(8>/U ?XFM!#I8R"4E2%S2?H&,6^$Z2B.E)@O"FZ6Y:MONN6IB<L"(V
MOW0*^<G"]!B;Q*9T8)HNT)<"I/J;ZO<.A$ > >B>E(52C248C'4\QPK\U3#8
M$T0C7H0OET@)K[9F/D?$"R'BJ=X&.2)>"!%/G03($?%"B,AU1$80\=2QAQP1
M.4?L%B)R!9$B%N8_9K*T.['BX-02:<'6 @#+]J'8UAR06?80V_2_F])); (J
M3U=T+PZBWYD=,'>LU2J%33D$^P14,DDJ*Y<M3Y%*K;2W\%FD">K8F .PK24"
M;(]10+JGB'(B>*%3K>O4M)GKL3'-$TN<?OG.F:MA5:Z1ZJ'6W*YXNA_'B[;K
M>0&[ ZLL-M3@V PBFM5S(5-$M)PRP@J(#3-%<M+)#.FDVQ=LS73SC,X_&]J4
M8ZX"@D16/^^#FO=!W:A^ZVLGL&=(E;QE99:ZMJ^=DK+1=&QGB2K]WN]KIZCT
MNF%D,D:3W7L8\PMI=W'KV6QGND47CV9RZ_EUL[NX]0UG]"T.:+2G3Y2&1Q[R
M\,8+A3>V,WRQ5\-&Q7GT8A>:/2[O2#9;I6H>G'BAX,26T$RCF6;+_,V0+-L6
M>UBB0.3RD0.6FU(RLFE-S[-EFJ0$JDIEV\,8<X%AI>W,,Z5JEA VV/@WQ=[E
MF1>NJVM4GE/"NJ(@*;4@W\;(QPLF-G)HK#G\D4EH;$Q(XP5CXSDT,A7%R @T
M<MK(HQ7KCE;,$_F]>J@/YZKR*3L5T\QB."*M3,E^H[0QQU4RE1;)E&NY?#R[
M52^E&I':T2M@MX0:]LJE% \A95 :[$#I19:S&VL'3J83'AG+FJXN!]+8P5C&
M^M,B&2.O5.+CC?R6U_R6UP7HI9[?\KIUX8_\H$A^4"0_*)(?&=CH*$9&MK[#
M6-]P1M_0:,4\ =Q/3U\DMG6%$YE(>63, UAENPL\"9"?%]D%M_$9M?][:4;'
M,Q)RR$3Z9'MIIKZ/)]'R"HQ-KL#(<D8E:[A?8_HD6Z9)6KF2%#O=9#.:L?[$
M2*94S3)1[7)^7B2GA%0I(3\ODF4!F9\@R<X)DG4WW<LDM#8F"++>4P0Y[60W
M+I(1:.2TD\='LAX?F2?6++J73]]MGE=H;&G\(ZW43+56QZC[%I]0V:+$_@L%
MU:OE5*/J>;W'=I!%9:^9<K)EDVEB0^,A64ZVK!TX6:T*23HC-7!&#"?H6#P3
M5P^L+#=32[$3X,9$3-:?KMDT^DLCL%_;RP^ZO.1!E^TGJ&9^$F;26'KK,T#Q
M"C#X(_!\LSM>E;GW NLE:JM44U>A\_2 GR>\I)FV;@4&USQF,=?D7D'3G<'
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
MP'F^]CNS0;./M5JE("D*1PWL:")B0[D#RYI!OH)]! A_KE5CZ-X P?[J_5^
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
MC&##[%[C$B+XEU>D?"AP[5+\H9^G"1Q?D<$AYW2 =,Q1EA?Z:)W#5GXP\Y;
M'_ATH[Q(,]1Y@!SM4><QWDOX*$ZO"*XN6M#97,+.XNX O?I11MM;9&7PQ0,5
M H9E>J;7^Q<7F;KP"^4EY7S"KZ[0PQ2&1J+55'HS09BEY0KV(KSKVGQ9786B
M@#;Q7!J;#K3'7P5^ED4J@T\RINT9'D"8%W*M8#<"./UT#C/!D\IP(Q)UD1:1
MCPL61F#64,RB;(TEX*PKZ^#CT>?!!V!V%8;2)^07,JL9K%7EA:4+OO[7OAE_
M=^G#?,L<U@K?)[X,/TOC* 2=X*:CQADN\'CYQ_QJ>5F/IEU9587/P-; _$/@
M$KEEDC3 "E)"TDE4<95F7PR;H;O?PZ/(U;]+V*MXR>ORYZ /T:DU3QNFD:E
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
M"*@.3M4+N8,[-0V61^OKH6V1_KZU+8"QKU0<X__F19;"5.A+;'6HI&\S[7X
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
MU9"OV"J+TD3>&#^/V-?%12-NE05C8F&UT)(]/(LR-E\V>%ENUX4,G<4(BJQ
M,MVM)[(ALBD@3R$R>-3'^H#W:#*1.Z3M_+!*L,BOL9-UHCQ9<)B(?E$BJP<J
MBI>XX-9CK&Z[JU'H%*5T@A^1ZKE*:L+4J^D@8:H8BZ=E$$V+/M<P!C3)FH2C
MO(3$_)2KD5;^VG,$6.B5.5]RXZFU=F:4$+T;-Q]E6$1_41Z,G6"4+$K-=NE\
MN*[%TM#,U''H4^]138RWB+&*RN/[WC/&+/">*"1M4$;;S-#G6BZH]W# 4:93
M%X 40+^/,,;+L8)MX*=_8FTEG%9C\EQ_A,!Q:"LOL-J,:I1R6T-*,0^#08I_
M41$Y%D],J>X4M/V(:U8Y=#(E;WZ VH@63A2DD'H)^-8).%15M@C$56!  )G?
M2MU39$Z!4A+LGU2<4E.LZ'UN+(,RD5IP4 D( KO/YN*(DE"-[ (AZE5W"-\4
M(\X&]IMD40L6#W%.UAS[WN]P$6%P33%4W-:<;D4\2/&8B]N@+)978[(<%W$&
M-1S/6"+6,1V62H=%HF3&K+E,1'X0K*/%B4$S"5[#(+5(+%31:SF-LU]40^BH
M4A6LLC)7TS+V8D+UTV&U^E;"0;+)J&,_5U$<B_PP=3371)+<]9-.1-2QO8SF
M5^#QN 7;Q%$H0;?"("]D%9CW@\6AA63^8)%]XIT&18KY1;O#G'Y-ZAGFYK '
MEV%%V>)GQ#XVCZ2,'\..S$$J;$,\VXYI.4\S9>*5>%%1,H.>6 :<..: I$P4
MD#/'N^H7&2^9@XW'\$APT?ZJQW,E%1(Y6Z2F#M!S".8L8M60SD8^:79MV^)^
M<48 YX.#R8#S*-9N.<V-[^$%JJ\!L!P5S)(4_EYZU.9:?-@40<=AEEQK:TZ@
M]8(T>$_5#6$>)JM)9L?1)YP,)C9NA0EQ7(UG:D]Z?5^(B(U31ML6O9KZK+WL
M=KSJCI!F2YHX4@]+5BJ.=E"M*!RS\B%WV]M^)A;?O^$B4<7BI;(EH2V,N H"
M1)>L=H;&PLP;AI01FLV1:E.C=VN[W+%6&@*K5YFA8P)82RHS452^_HXQT_=.
M*BD*UV9=-"2&$TUM.,:<U4F,JHU(C!WY?>_!/8J:,\SHWV$V8*K@37;_1J[K
M 3$P:#>\T\7WPG!?4^ :Z/!F/0:1*+8;,#@0#KR#!DWH62AQYYYIBU+RJM$_
M>JI3&%(#7]'$H.;H+947B^ &A55E <8PV=6KD%M58,E@V5^4H^4^DX#E;A>P
M[ *67<#RL57 %I9EJKA"<0H0 Y.(4)-%$3J_^ ^UFXWQO]+\>H1^K5QCJ8:.
MROEHO<Y5&'$@8(%>>:-BADZDC">U#5KV.RUN7)&4.TD]MJD$XIA=JAVR]215
M%.RWS,+IF)7S7DBN;42-+! W0] RFS_EH')3\NGR$A<X2'^V:K[DO06YE17H
M#Z?IDZ^45\"E).@GJ2UE*P[KO&D8M!T?[ZP#2J>].C5X>3I:LHGGJ!3_)<8#
MIT>W8I68C,0:Z'S%',4 !?(>4N% L2BR:$*F+D*NSF"KO>8ZVJ:/SC#@?V7L
MN,AQ_)]C$+0[9\$L12BNWU56H"E C^[HB,8\#57<]][IU5ZFR/@TXKZ9KN,5
M=WY18P<T-:MNB=7&J\BB_,O.%&DJ(O2ZW)A!F;*O^=4$=DFP8.61[_GH7KW
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
MJBYC:($1(@?E[V\)P>&8?FZ >*5^:P<'1H9H/<M;435^%E&$<Z;;1%+!5HA
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
MB=]\JEQZSPWVT,A#9ILA% 699NFTN/+%T6-$KL/B=/C8$D5,>&].RR\G^NY
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
M&BQ*(FQ3I664L:QKKX,]CLA#8L[(X!/:]%5]Z7N8,T3=T="/!98=R&K!_YW
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
MNM:M@7Z_OR*USCFW]JX;?.F;M<_958C8*RK8K2]42 )$0H)I1/SU=XXQF\Q
M4'2I"S15Y^QWJ9!FSC%'/YY'H]D2XA+1W(B+FH%_E#$^)2 C1MD43(SR@%O"
M?9-QQ^8:.FQ8:/D#E)@)@-SMJ [4 Z($LA_8HDSKKMA8@LWPS^L^FK )_7@M
M2>"C<=>7ZT0#5+M R $+Q K&]Z&ECY!4Q0T'0]H[3K;""5AWSXRG+?']@2W(
M7VBXLAF^ 62G0 K<J'<!*HCS>YR8[Q35<&#48@%0_'!0W0%+-PP]]B6()B1X
MQ<5S^V?]RW=V]'D)GW-O+);M.<4/%27'A5H]=5^@IFW"3]@U+C@&L:,%^71X
MZIV7'UE,P>5M$_R.9-F7FW<LZ!]$M/LW+@-5G=)$#SHT<T,)8AI3'I,'=Y.J
MAAGXQ%82?=#<TR)XHJRL&+;:%"!.*3L!-]M+'G1DFA,%NQ\HVQN V$J/JVN<
M.C&JS:'QB:I"DEX3W%#0=8+=<<O8H*2 0^*7$KH*T]/@=5"K98N\I^481!*\
MF?I;L?^S[MHU'9UE1R)V7%#SR@%2U*2)9M8W-0\6!7J")=8LF .GHK-D)Q80
MM>-2B%Q]Z$L$L[GMF[-*4PVK:@E2PX=LB#1PA0Y$40$-U  _VC/!,7*2:U>K
M;(B'[<22I,0K9O#WA <;NP:TWR[W\!:.!>N!E-OL>AX=SI<. @ZQ4I<)O0!L
M_4+ T1 \P,T(DQ*:EB5<TUA_.&TQDB+%H>89^&])%(%3&.170B_EH8%,;99T
M&35RWRC$GIBA$QX98RUC<3Z58$;L8D)W%(\LE@PJ+=6UO*\UNN+B=WJSN"LO
MU!$OH,/'N; J$#89Y,4$DO@\R9T#D1 $\//*6PI2Q#G&D *+S9PVQX&*4.RL
M8U,YQA/1,[L]\F\S,-?3Z8A92YI[BJAU(\7'A\4I71[')I@;81,"):\S#Z>C
M=LWX-'DL-;A,[)^30R0?%9BW\7,0ER99LIFLR)%"7!@7<EK+/AKU=4/ %Q$R
MVJS!Q7R4^^FEJC^VZ0]QD)+C@4>1*>M(Q\!C:K+V>PIYCL$#Q?;FL_R]&6N
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
MBXK2C*J<T30X>&2I?*;R^9)\S@754."$P"4*;5#*9+"*Y?&CW-;U)HWZ18=
M+XB$0_54?VDSB)ER=4OP@LT/;E$P51++$:E\TJ*BZ4+,+GTO0P>S*-2NSP)B
MOIT88M.'@I:.95^*1BKX,W@F9MJA2N$Z(>VV,(CD "*JU)OKN2/RB@,S/E>@
M&40=6MCM1[LT?<Y5"OP#G%"31;@&'T7 O^"TI-STN D5RFMY##9.':2',;9.
MMD=S4D"G>7E[F(P*3BM/<^>1#I*(QM0>MD4 .CI41J"4,W<[^)#@E<3? -4)
M:S<#"R-86F">59Q8*DE,#.0>-E^S*=<'HT9$4CTA);INVHS!U0]<?93I14/$
MCD\O'6L^\J&?#DL2C"D5QVI=;T#>E!\"8OULVN2"B9AHG@:+O*QA(%XA7DI>
M:X2.H5%&&O*9OFW1EBE!I IU?5](K:",HCU:;&(/)A3E=YC&&4-Y)53JFA!)
MS@FT<0\IJK0G56Q\N62#_=9228Y6F8U-;G.MLQGNV.F(EBO>JB:=@:D9_Z#<
M[A3_4C2J:OFC6.T46\^6^V]_AAIJ9>TRM&SZ\$-3,U@KD,^2B+3)4E,3>H\,
MHC(@/[=0(82V355IGC3KJE+W+4TYTRA0*\AIFYBRH5(GSBMTJW X<]J9&%')
MX-K29J/E&P<I('F_6<-%;(@A0O.$^0)F<N*MQS'.(=!.Z&TLI_B$8V68D$E
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
MIF_1!Z/LF$16'3:4P>X@>G&H.X%ED]?JN@VV"P<)M5S1:M+S7,W@AQ,*3I,
M:U-S X)J7&98<XO*A_+H2%XLE<N26G]J_=[<%R$R,3!!\1 CL0.9 _[PI-,%
MO^F;!J.8<Z26.HY@*7PF&2-(..U1I033^B[Y4[P:L:5L+]^JN7FBQ&$:5=*)
M7#>)?;1\ZJ'W,4O)YW;8'K)R".NKH;4?J-,ZR#JGLC:%Q<=Z;L;0\N4964T9
M$HF%V7,3US=T6&H0$OIRW]CR@44ZI,C;6ABU'Y]@I-5-K#K!Q#\1,2R5:L!J
MY[(.?#83WI>F2N>F'.F;LS?E;5G)3P0W)(9@9.)4N7!O\?><E(NXLC0[G'P)
MR@_(9@@CZ8D&[9R(P, GNX7Q L0=.*289%8XDXLJM9#!C*/,%(933SQBHIM)
MAW,3']&%^AHTN.&:LI6)>N=4"0\C!DQ T_4B"PZR1L$Z&+P C%I$$!'4@,JM
M;%_$0WU/&!Q:ZN%M&;S\%QN;7.Q_8HM*',/! ">+Z&B:8##OV:QP(QA<$Z;Z
M!>4D^D-2D\MB@QWO@HJUYT@G8".L1$,ZSU'36;P/"<44RV_H).%@IZ3,5>I>
MP]_5* G"; _&_4SE)DW52GL+NCQA5Y$*E'PWX)VKK%@II@:WE!.6O6'3=.*%
M\,%I.UG4_T8G'IGGE^ Y,H_>C@J0S'(D?EP8(MIUPIZ4GG5^0_E1V]%,:S3X
M1!,L]'\!]PF8(0,URJTDU*'%^)2$RF!2Z8/A7:D:C27*)2R0C%=+9TD1A[?,
MFVON*B+5J3PK1D&S^02X&NLI9M/ K+JLLJED>0R:!FU][$_S0]I.@AE/9H@B
MZ(AG3;<JL5YB:=1QG0P3<"RB"U\)4U^\#1 M&*;/:/*,*$6<NHWB(3DCQ;L?
MQ4R;R+5)%FXQOU:7\YO<CM 08I[Z-:+<Y:E<]O?E9>;DU6!U.[S(F+@/S[@8
MM.^;PEHQH9:5"&L=2$B]89LBM:.P7,8W*=@5LVG!+BW8I06[SW:7.(HI9XV7
M5#0/S?!W\QY2#"J!C5LP[XHW%LN>)T=0H$1P?%**$A)2/RS6$R>Z.)/<I_Y"
M(Z%(H<1+2Z.('5Z9A)X?:G0Z/& <U'%W6GYUM+[BNVEL\])03_*[@O \P,Y)
M\8C->D,9)3EL!_\G\SM9FH-E]P6%(,.T,A@TGQP=CTU,70.T!;HTK#H6S&*P
M%NNYQ"NMW[(5BS?$LL*X!M\A1P:=&09!"Q$-]9>H"X,IF3#P+4,"[<!.(^;0
M<^C:E,<[A3C^77HR\Y%!O:;D9*D K2! 6$HCNCR5EU1>6, @"LP2@&5\NA7Q
M'E)9264EDA7,=B.Y(>88*1*YE6J45$H86+TT.H)-H)Q9+#F-3H/5*!F?BE$J
M1JUX 8U+E(D%U_B$^\0 ;X;G@44#9E1G@[HPU$5(A-S3?"N5KU2^4$TE8-1"
M5[' IA%PNU'YC?4]BH^X^*LP%:E4I/Z],'5WX%BBFY757:G+!(.TB)4+U-!0
M^DU]ZE1F?OQ[C.7D13CE'B\$8TF9XRF AI*&BN/0*;3Q.-;U0D%8(SJG.,+=
M76@,1%>J!N!=J4BF(LE$DM;T@:0<FQKG))0-K]@,$7E)_WHJ3:DT[2;TQT<]
MM,O;/%+9264GXKW#OJW U4=L>D5@EX(99-7P5&)2B3E#L@14+K'F,PGTE .6
M<,C35&Q2L6G0'GS$%^9<B"R( P:C$)'Q%.@!-5(O.169A/PDF"*_'S$T :B5
M/$5@.0EI)8:69U,8]663)K2[&"ZOB81Z;#PGY<=.17()/[9A^41,?).-85C0
M(@ACI>O/E/VFELNZ#4,1@V%\3A$;VE@88B[K^%)CHSWSD'M1JSMKU()&,#Q7
M'/ $D%(PH2S0GA,@]R-Z)W@$2Q_9,_IKS,G0<32)R"::[CWH1Z]#695M=QKK
MP5/I]N)S])'UQ^<#OSBM)H:':7L\3#]X+GM-"K._2/HJ(:/#$^ -7%T//<J;
MM0)%%6LF)(\3&R==SX9!Z9B]EDMA@KL3T&P=19,D[QQQD/8]+30V8LAK1V
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
M"^-*IHRX\2"Z ";*. NH,\"X!]>?=6^)!P%B2J*83-JK*IW,!>4;D?1!Y^S
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
M4,_BL+&W)/\+AU9G2&R&U>]3X!VJ823M@J$ZOBWY*IA!U#;SJ<Z86F3"R
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
MS5XQ/Q5O_J6/!?/5Y(GDY8HCMDE8=#AFX^+.29US"+TF6N7!:2 *S??!L>"
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
MOUY-2K:LNC@?:C9_>V6J+TR@OBV11/-DB_\56:0/MF'OO2SHG<KI)AR0EBL
MKU\C-C)$%Z:04]]UA5ZR+9\B-ZODX)9+RGL=H1>U^R8*2UQ,4GV[,?KVQ9'_
MS5DKIH573])OXL&C)??-T,D?(EN?(TI41W]Y42J^A]Z.6@1^_I>NFV:__\FJ
M_/6O7F^WY1KB>^CH/[X*JWLW[Z]R/__=GSD;;W'UWM5B%[ZK-#"M^?6DX6LX
MM#_^;5Q>7#1/.PK7?YOEIJZ!A']XH+\)RNT;[/.'Q^AKK+;^J.T2G:SE5V@U
MS1^^MR[[XP;\K4G.]TUIKI<M5TI;^=\.>Y3_M1[)NSJ['AU/5$+'"BZ@OQ90
MI+IM!HW1O6SO=&>SZ[W^V56A-AK?7,(<5NCOU,Y_X& 5>4S\5MWOMOK='#27
M0'#>K>Y?#9M7-WMGV7RWISW4SP^#7&WP0S%,W1IKMO]_/S*%'PJ2S 3_]\-Z
M#'XZX=AP _;W'XJCC<G[A'YFH&F3GR#<=<> _VG>A]:#9D/_;CUH:)X'*#9
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
M*.-:5M1%* ILW7M@RY?CK7_@IY(\J89ZNK]\8EI*XG0Y2^'=4KY(:*/-2'&
M#X#Z""6H&!V=LH[\Z+L+35T,@Y&Y&M3S2FO.==/UYP0=ESLS:P5A0/_S'YJ(
MD63422@*+MUW<.EB4.3:DY1D=JM5?,/DY%:5?A:*<1:" AZ?3KW1QN.[A(<^
M0C.SZE %BZ \G$=V:VURA[F%W_(82P" MY40F"IPSU.UP]PGABT1?0-?B$Y\
MT-D\4Y,>"T:)F&H,IX^)ZN>>;[DYR$(4]@@YKD)Q6."Z%/<OD&2,*\7,7.JY
M7*8F5@1ZW>V23 ,B"38<BJ63QV;]\;8A;FVQ[@Y7WY$R_QEDK[%%F:OL0!IO
M<FU]\UP4$Y4G]2FM06P!SDP!RGRWY[3O9N?JV[G24<7+T//>\Q6(GC0EB]W@
M2ENO*?ILR!<W\A+07-2+B$[%*.941[,H(!M5\[MG-GL^/DI2^:6ZS.$DGK&X
MC$%37*(M(7P \DK!WK*)*%(;U;Y\:%IZ 5H2S.@Y8\^L-B];-B7'U_D!CM "
MZ2@1H]-G),T^; CW8^BJ<:WH?/C-8K@44#Z*Z<*>46'0/A&UK:G.N[7+EL^#
M%='AFI/V3,L1;BWGU'(9X!&CWD0$#7SBD_VMH\#M%P280@:F4)KRZQ+?/Z&G
M;3R_K"?J)CZ1ZD^)%% <W!.Q@NB!QUZ(1"R-7[_6^\T!=&O3%&'I'FCQG[!4
M;DK%Y3*U-B9J?9,M%7N"_91C(9;@>1><C)'4&046PAF=_1KJR['-6K&6%[ Z
MU\2$ MOD+C[1PMQY);;;'5\)_9[J+<^J? ,AN(<:? ^[QQ.M^,W.E]Q!(.DC
MN8!/DJW+$5./.J=\1HPHJR]U146\W!Y)EFJ+<=;N4L,.(TRZZ]28Q*T>/>(_
M.U!$7L#..<DRP+3;==42X!"1_&]9.KYEZ4Y"*K4GC0*/2W;/*I1Z!;=O H_7
MZY_RBSF5<QP%BQ[M<.-5_-?/0<G% :%KH"1)*XK8*:N)B5J:=&N=*MY)"2Q$
M"8P+_3K'D;T_4_,)69\1<FZ(G(O#/]= 3BX>K]9EDEKB^58FX_;:#9-@&Q Y
M, KTB_PV)0$_=(!%G[K.YY]?^8X<-<S!XXBQGM(HOO"?T"E+LS]O=]NL@,?G
M<S'Y4J=XYUD3R83/6:_<\.^;$-0P(R:\1O=+Z>K;$*E-NT5Z8F6RG#2;U=U-
M=LX_<0@B'F$](R\^Y$8FK.PT@DWHN>K;L.G,JQGAA1^S;6DV3-?[$W;<'"+8
M(+9*?.<3V!_C)5VNF"^TN"S&=K@FF^>\?4P!X]LMH<76LL5:'OOAC$S7E@S%
M_L0CI&$(ST;%]^YE0_-[BDKHHBFAV_:,Y.)!Y>+[!I6NLA/Z#4-*#QXQVF8?
M^JS>RHX2!F./X[A*%[3<XB4SJ^+:+5/AN^AU5(4%RR=I:LV=#52+'R**;_.N
M8\,W ,MR&)K>*\Q@.\M-MM8T\#R?3]6$7K(E20V11(TB4HD834=](NX[I^:Z
M:;E_ 8SK9KG_+3"</#VSEVG)PA<2MV"'ZQ6>X%@(#!H! S^9%1 9E @FGPR3
MZR:P_RU,NL]B53$5N8OK?&6:R\<MI]1&,&$ 3.A8,GVUS<T["!>%:+_SYD[<
MK=5+=-;SP3BN#Y0C575"2[56:>;%::6U=MD6E^-6:Y#4,T!+I1#+3<:HD[5V
MHQ2_Z Q;6%C 3<CR!0@KRT4YGTHPSD1:U]MC*MV9* T-(@S292:6.F?;*#)Q
M$=Y"@K>;L.X+\#9N%FJ,("P+;7>2*1!24\]UTPV(-P;AC4Z<R[O_SY& ,-S*
MZIP9KOYT01R[MJ,/-Z^Y.D'N)%$_ \WHBM^Z VXJ@^^T1BHFR;(Y P/?@(7#
M#-,!(P3+B8&)T(&X:98TQ>:2Y6#F$'-&JJU",42EC22P]-A0-R1#UL%%8/$=
M%;:<MG^!E?S,:;C6EH*B+X.?X$=P3WFJ2A;472/_P5M-! <0:"Z@NJZA;V05
M]B(,WIBD]URR"_0-Q-+)]_RO_1?=J=ZX;$Y-ZW>@7_=F8.1I?Q*I6DV-#RQ5
MFL2E(1CD;VFZDC:V/R.IU"^2#C)I?F]U-.4Y!:G4_V"[7^%K'$W[3%K']R;W
MP'/UOA5\A'1R\)EIZU!7_+;4*="'2Q7>^^"N: 4=<_Z;)'XQ5UK 5Z"D]I9+
M^L-:82,+JO/_;O&94XOKX=6 >GIZ8(_]CP"$H3:$X(2M,"'ZMDLO[2__NP*.
M)CE.X+]V+^//\N[#P]4YFG;OCT#KRS_@%=C_8B3ZYL]7"W*PK@<Q"N^!WD=O
MW#Y8-0E9%7%()N44GE1$2J9ED58(14PSZ:%(4Q1))\D$F2"2_W@3\3GK?$2(
M_I9.M0H<EN6$#-ML<0(F](465Q6P?)-OUSVF5:QE?FW9EO?:&;Z6A3TSL^ 7
M@:\4LVR+RPHM\+/*U5H"G\OPU7J3*X3[S?<'C^U&C_$YS!\_>,=BAWM=1NQS
MXV+;:GTG;>T%)?W.5,P_V@*6Y2L5MBF %\-:!;XML+6L\"\&_I!GV?K/SR<1
M5[*>/@;I89J6![@B)N2A(M*XG!0E,DD ;,I4(CD8) F2]"51"KB@DG13'+_9
ME-OZN!Z?+21U4'O21%2^]?!*D2HYBSBMV6T>CR>E=8I:S&KP2OKUE3G25I]Y
MLC)MYVTS(PKMI[0V:8BHB-^K>]:5H;B267&B5QJ9^E.;,TM)X/F)^-$]!\8\
M9<QSZ0FSPLE)=[@>U5<KD3P>9ZNP)%\L(C7AA'S&-E;]Z3R?A_<\&F>K]333
M&AI3G_#,E*HE^_7)RXH5R>-Q]O&UV6=K27G"VY4$N2"?)]R&%>GC<2:S=JLZ
MZ=MCW(T7<9JVXV:KQHJ)XRL[BIO*V9G*&F=(N[T9:_JSCK,B<WQE*]MHT],\
M3N/Y6B\W)I>#F?#"BLGC*]5^L5]8YY0,WK4KPI0L]\C*:"6FCJ\4YT\TTY'B
M8EOJ\G8N.UCEJN.&F-Y>B9C]EIYXZ /49"K-;?5W\,N^?$.#[E,4:*%DSP0>
MF#7)=<Q#FX8^.;!#QV;HF.HY5C P_X&$!Z@/>[]P5^"]':0]H[GW1!,\93@U
M5P$V@W_'X9U_>_1L!6;NC\S(UVH'YE8:  4'/+JO($F '23>8;7>]\ ?/T#F
MK[O-'ZW+;=;E3PD\T;K<#"_O;OU'ZW(CO+R;GQ"M2F1=HG6)T/(EJW)^OLQ'
MR?*5 [%G3E3PW RXQ\#2P7,*ZG2IPA>%SY0,.W[TX-0%\QKN]-74)\[@T2[_
M\<\[JAWY:F;>VE0\F)K+0VHER7 E:^/-#D7$/G6O]NH)GA^0GH]N7Y^2I7M(
M"?V3&%&_DL=R= [$WI*<2/5<7?4\ML1\(%'VZO/QL9S8@QGZP$Y[7Y4LC ./
M4+:;XR''U*<RHE=S\Z7$Y^;-_[[&_,-,UGLQ]E\A6T=3]#7"=MM68%=3^#"+
M\XX(P>,HK\>5)RKT=.$#L9(PR$R$KM!X_G_,)[Y7.Q=1A+#Z?%\@<I$6"]5,
M?2^!^A!)N)NSMW_I!&;,V=Q21ZIAZTL5TU&KK\<Y&/A78;S'KM;V"1'.ASK>
M%A91"5U5KK )2J13OI&@A-+!_P1#?<[$U%0'*_H&^;XX\E4V81^NK-M?SLJ#
M=SC76@TUK77)R6)0[(R4XM0LMN 1A2]I</ZEI:E"9%!"<%#^XGEX[%[E0V(M
M*()>%R9N7R9FFF)*,K<2$U_6JOQK0RJ?RBDB;#QV[W%;<:E5XV4<QS.]^C"1
M5]7&.M<0$]=N/7ZOT:%S)(9W1JJ%R2>B0MB/*5B&G[\C9^Z! D372E?^+L7;
MPR(_CQ$,>.Q6$/=!<QY@8JZ^.11F6W]!(=:<::G@#3'9M2S5D#>88P$5/D4,
M#Y,46-4"EF>*88:*JCGY/,"1UM@/2Y7AZ:7-3TQ=SP%/0!5E@MD]Y^'_[\==
MQR\03SK8/-M157]>,_ZTMG:SRFXGM26M :,%5X'GOJ:V-<FRQ&$GV9AEF,$S
M+O3'3:TQ?5JD*XU__D.=J#?\\Y*)A^\("W-A&YAAK,(,8\S/SL8H(H;!V<)^
MO/J$QB" ".+?R];XKEWSSUGBXY7-#->]EE8RFUR\G:_;6ONY^.2 E25B>/KM
MCGWGS/>_KQ>2^M"R_;CVNEW7;;PZ--/Q6FL13S_U\.Z@WITV2DJ],-7^^4_B
MN +H1<C\>6^!F_#'^6^8"?L!:O.!38#O946]=V0-Y21P:ZK##]]#;TL6IR-\
MO"J,+177>Y8K4XLIB]=7(NH&0Q*Q-''2ND;["G>;D'ZWL=5PD9NSD?<:<.1(
M&TR:#28_R=.+Y,N8W;32>D-$76:(6"J)1]L7WQZ"'YNEJ]N^<-'4O[=]1J+9
M70BTH+1U5F.3U#I7R O0]L']DE0,9XZWU(\IZ7?8+[D@AM(R'6F*F7_:-7F
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
M\]\D\8NYT@*^TC?4WG))?U@K;&1!D_7?+3YS:G$]561 6S0]$'3_(Z"=H#F
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
M$;+ G!F*[67=KM @X5K"T\H.G,U@-\7++04Z4_(S0*&;BP9IJ;*J+^&+>(^
M27%PP$.TJ8Q"L29\%:!#5>3,035E6IO8T73N)4 C5:?#GG9^1=2!:5E>YH&7
M_@MW@2SP,M[N#1BE!70>S,P\$":@;>1)W%.G4#VKAAU,\IY4J[.!J>@[A>\I
MMR!XZXF.G\0+[H[,#/S4MCW)>0V#O5(RL;U[;2?8NYD2)!/LKO>?!5\.X/EE
M.P0X95[$&UT%)D71X66N$6PHPX^#2$^PKBCJNY?YXTF-C#;-]E(&#_$-OADH
MQ%=@?[U8-F+$4]. ":& Y'GI4OMIXL(N/>IM&/C&'>:'.WZ>\3;M^!=VRWUL
MKZKRZV:+;^RYD2FQPVI4JL_-IDF)L2W)GE#WOJ&=09W%PV^O4&FGK4L_ J\
MC+"W!X/9(\#EXE!T@00CB/A2!F@(>";0+#.HQ+>;9,[(4E5L!IXT0GH+:+7W
MMT*NO1T,-$X'JC-^F NH9]& NF^VD\>M&(Z8*2WR/8>;J).Q55PNQVW./+'U
M>_JZQ]CZW1)T?3=-7RS%Y[T.N@5PZ$U/3%[M'+W^*\SN^PU,M6K!WX[^[$T+
M\E/@)!Q8P6$(IN3C>2D!%P_\M,,-[RU9D%%[I&WRQXZ58#\ I?RY]Z>YM(&?
MQSS6H!X2>N]HPLZ"!U=#4F^9:T0)_7,7>U1# ?]Y 6WP$5(Y>VKET(Q]!_'+
M@C$OO3-(=R9Q7>^HBG+R!;S@ O3(_8U_S-+MR<&./,JQ@(D")T@G\HM]*0PR
MM.W#!YS(4&>%#-8RY\"VI(A$D$VYFV!/8@NJ MY:"](I?VR_\#/(;-W&2I#'
MJJ*3=R??$L8*('FT_$S8X_T6:7<VR? HJW<\*8#1!MMN\X!'08.[AQ1I"V O
MS.+E?, -G%TVF*+:8$DAT.!TOK$6X$8C& $)G%3/04+>.]HZ0I/YZOLG%6&0
MR[$;9+!=M9\WH4H6I+Y>J.25E^$+0T!C]YZ(=O\"Y@QNY#I@@M"A*&G/,_".
MWFV#/EX*K E].2#-$S"]VR>A4WGF; 9/PD$IL]_9$?MN2B?(^=KM'0)PWHG.
M03&U-:"GGO\^//4J )BR!)73GO7;1D#LG<__[A;Q-M_J%\8B10-D<0I<<2A8
M0= ,)4ZA^*BJ>-$(/X08?!CXR4,7AC]B,/'\<,-V.(6>^6'P9Y?.%F0B!+O0
MVQ,QWM]CF.I:9@Q[@M83UFR%:35@#I$0:&@\AY'"X^WF/^8N'>X^/'#V$A-E
M+T792U'VTGX^TB792]3;SWC7A?X>%K<89.,CI7\OYC:KSOV#13[7<C9S[W"Z
MLD0<"KV^MS6XE/0I@M50DGT/,;8[A !9&"2=V]@T#"U-I]!4 FMH:?!,5D#J
M?,:L__3,G00I,S")L,:!9S31R2\]^#LTASP@Z08J,] $5!EKPDEFP6?0__B1
MX9M-]J?_)? M.%QT6!0\;O=%/Q@"WA5]^X? YYH_/3_DD''H!TMY8+]]*PW6
M 06@@ZTX],[PS1 G12'I8)8VWXY[9KSWOQ<('*^_O'L!& )%.]5P8;VM!^C(
MPAAKL,_]*L*"! IFQGNR *]$KBOP\%S'@\^!XZ4[00T:Z$M-8648;XL"DI[=
M:>53L1RTHPI,*:2MZG:G8+N5"&M=JI8=;'ILZY=(P&."E5(4%];B\'U&334U
M2YJ/T';T;K-R!F"N!<[GWKS<Q=;MSHF&G@+R$'SM!B;&JUOSEA\<V]OH'+@.
MN@D\)N6\X9-L=VUBOB, ?K%7TMP_^N55;Y(T2U7]V^^B)W!FC^ZWU_IH9U"
MC!3AD0]%][;M5KLC8TC>X.$8VWWCC;P@BR6A5YJ[%I3V;QB-XW:QJCL1X5?*
M:3_8%BBG8.?SK6#;[MC1-D5C%[11WDLD;NVYU\@)L[UL97\4>^&DW;[E#CG#
MJ8F"@7$DPOYW_#)!R):BXSHH%]P<#F'L#&5&F-"X0O%][3H'[^E![,^O>SA^
MQ003L$7+?EP*0F-?)6SA<=-$O>8NEZ %JV^QAH+.O?OE4>S=W]E@-SUG6ED_
M62&XZM6FV&KLRHU)O3'%-RVC/6G7&8UYN?>]V7J0:(%6TN<?%935?I\@]RVM
MGYCOU?[2T8F)'1OQ*K*=X@5>%34__NJE47A(F!_,T^%#WH[->A%9 +^]A#7_
M2[!@'#)*?H)0D _QSH.0V0J2=52/J4A>[IX7" ]>PXO#[3US9<'. U!1;"G.
MWE^]AZQ,RQEYH3__A@'OB?F\QP^3@:DQ85*%,#+=J8+(P;8,NO]'/W8>.TP/
M!&8;3/M@ SB%Y^!(4]OT+_7W*_PPHK?7('OWWZ58HDIA0?S:UV2[3*&;IGD4
M@W2DMS([YG0O+?:R([NM<]FTQ3OQ=CFMW;GVV+[U/>B*'*R-- *XT4Q3L;<)
M9,&Q(I2'N[7HP"IXY45@T3H$&IA0Z"=404V!"("G&] EWO[XP0,.U,)V"\PO
M[B#Y'GCP97A.X#[2.ENO4]OV4O'V:Q^JV]??7KG-WMOE].U]^8T\[$!_[.T5
M@#O/X)I %6FB6CPH(]%+R8%L#C 2KU0*S.4%K,727Y"& /8B*,OI;SIZV7<'
MK^&K'S\3")[DAF5YP(R;PY.J,!8,QW\!WT\)TB2G^A L\T;VS8L"E9B)LD51
MH=*]*X,:FO"RA2MY%3*A7P+=EZ$_I:=?'/BDNHR4[$KU$XF!# /%"IQ:**Y@
M'F%ZW:'4#\QE(( 6%'Q )Y&-0>8"D+Z5L3<IR.U"VX@G%@\*._P6H)^0C]XR
MTZFXS:[DK2SPXTU;FO+#"IB+"B"HBE?7H!C(:7&;W.O]X?VR>>.R9*^>>VX3
M%_*.\S*6LB_),7L<"CY]W4/D1>VF%V(&BE@<9DHK/ENZ!P4&E( #HP-'@T<P
M0(D(<!MK#@,1?K;TZ6QO]"^H]0%:$,J/4L71R4Z4 @#5O9_6@/)@O5,6\(E[
M>0:R;LGN#*;$RNH.T_ZI!*!QU& +=9="_ O+''QIGSHYEJXA#1 H,%^EQ5!@
M)CANL O._,;L_81>!8S9/LB#0!9LFT$_]=0RRF[4H,_IJ<-_=[6DO-)>*)('
M'-H52N#V*D, +><382\1'Z8'PUB?Y!/3C2==Z J4%0+C/.!&SBX+V=V["9AM
M4]:1 4>WV:L5BUCR-KMDM[K_>F'(W;$7X/G*?E648,)/?M'CKC,P'C!U$Q7Y
M%D#HX%2"E;']>)*"5 \T_$/P,1R]1X8-] G,9@GLFK([<3"$!Y"-_01Q= ;Q
ML/H&$I]]8NW1!WA,"/HS\'"19R2W\QZ<''>\ZFZ^4)]X,_ @F*BZV^=_E37W
M"ZON'4KV)_?$: ]R4/QZ,[OL$V\;8.[E !R-]1=6,_?O>4K+8"/)]BHPZ;"Y
MJV?J?:!9_GE<+\?EC HE"*([+^:P-MZV9&B4"Q#D B2C7( H%^!Q<P&DH(??
M9M1D1_*F.L6E#-.W*L_EUNIY)>(B[K?:V5XY;"02Z7)Q]-3.E,8X6VW/,O4F
MO))X?:6VSINKH4*;DTUWO6!-(NE6LRO <8_N2;1IQWQ^LD9MO3R=3DR+IE=]
M>.71/3?C4:HUGL]+'&,\"_E\@5QUJ@W H8_N2:=X=[SBFPN<Z<3%O%9DQC33
M$*GC*\E>52DN&\,JSL=QZXEJ3)6.KH$K@Z=?GC%!790Q0;^=,?$NN;Y!L#D/
MO'U("5A#.>U-'/L1A<YL/1PT\6Q[-M<SM;';%:O/]WYB/)@'/_?]%1.^!\=@
M^P:6ZMM].R@CLQ<6?77\%/7-.'FL%'+^-TZF[B;GU%QM3ZS^PK9#TKT-&-L=
MC%$XU(24S'+\XWU?OAOY5X[7JT.0L-?,5G8 B50E%'*#U8'A]I:!\<"O&("Y
M#&]1Z\-BW#"4 OFDES,+(U#Z$'V"G#[,E('/X;E^!ZZ;'PGW4F.0 W?2R?"[
M:: 8^$ZP!BIRL%#^;9 0#V.*>P=;7E%Y6,1ZCP5[_4U1:QOD)>P%X8(:K/)(
M5X=['ARL(H*V*F"I!.A)@%'L]Q79)ECX&1/ ]5"],Z%>KQ#/@7N_O=!1>O%6
M5$X>HSWR/G;GQP_D#.(G&-WAA*$@8=!)1PD*20/'W=O@W'N47_(5[2C!3B^O
MJE(G@MTD_T A6E?=086#3B[LUNL\U!>'AQS@$-$M-,"6G?V<[,-J ["")W+\
M83)V[*(:-F&K&X4?5+")VZH,J]B@>N:J\98UWL6IX&[FMEH-OE>M)F5,YZ6$
MJ"7;^DKO6,EU+IZ:-O[YCV'^7;&:-U0;7+1]!W6O!CWV(T3K<W&)H6NMS^AY
MSA!*KU[ 9U9\WK>[YF)!-:[^_A?7P[K6^^L%GJ)KX\VRO>%?IMK3\JEM::LW
MY/-S!!9N'UA[![>@I=YK.( =_)/Z>1?[5<4C>K57X@(J[_WJ%MLC6^CU/7U\
M>$8SB SNON0G_!P_)ZATOLLOW*:Q^<45_!+<(QT&FPV4KS6;JZAD,* *$MI'
M4M?00,(MM<! !IF'7AX#E"_[U..11?=(HE]A!X.]82 '0IE?P6:D3U-UZU1(
M<NE76#_8$SI\TNNP>1#)W8^,P\R_W1QN0YC!2AR$+_?BED&,>ALNA'8;INSL
MQ]6WD;O7%O#P^/(?AWVX80LH4#"F8#]S.XI@V,?!RU F!?[S'W;/5P@2*([=
MCH,2HZ] L->S!173_OT%G<D46UO_%OSFC_QP_R5R2+;0CMYKIQL%K8Y];C:=
MRQ9[.-.;9-;64UP5>M7VR[42,"Y=H3,[P'E9T$&(U6O7BWHUSFWU=_#+_EA@
M4-+W>F"43?;"> >A.<EUS,.X'/KD()9V'$K;A:M37MC,L<!_2C"V5UZ5%^3V
MOY  7]B%AW__MRRKZG"X/V7^HX+I^]P>R.B%DK_( %K -P%3\CON?70YM#+G
M*/>#D+FCA'RJ+I\$X<"N((L2O/+;NH&U17ZXIPQLRQ&;T 5F@<5#_ZH"E,_<
M656= ?=?]"F4^ [VGS95:6Q:&=@K!]TE^$ZP2LW]50GNFR\.,L]/?:*]8!=)
MLMVOXGEU=4SJ@+\'7?RCTBIO#J>-C&@%V+\]5M=L6DVAX(SL23?YM)DWS<J
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
M<"/G<GCNJB#N$$0F.G<L'<YO?(GLW#"C"/D ZPYW2_Y8M.=;XZEG"'A&$BQ
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
MS$#1-!7<Y@Q9QE'2IS*#2!,*) 6AAA#,-:!? XH%B%M2. I@X(X;U]2:]QH
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
MU) .@[,!]"0\\=)>*#5+Z W1#=PS+<!JW<J1S)_"-(_,&'N,I BA7I&.5^'
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
MP@D)KCFMIUI&)M$L%Z"^@R&E1)!YI;[[.S<<-$0SL-5T&4[RG/ K"1@P 5Z
M(T;Q7--_G/GM_P;^)[#B]_!'#P6AO11(^CH$B6\A@KZ\[@\^X.>%I\/I[_:,
M9"&OFH"4^ICILICGT@[+79!=HWY,/)B;?)P3^71MDA;T03J]'<5A(2#["8:
M'VEY0/BIOX=E/[%*\%X</%OPVT1LPM;RU59<&UN%@K69I@$'1V&9DL_!/@?_
M[L8!EOWG 7GVDZH(/XI?P?Z#)UY@W'E%?N&5W:27KS8GZ<XF(S:5.&1<6%]X
M'B/[UT.,^Q@.M\^%7@U-WYWWTN/:GI^5$R-YV=DD%O%$-UH'+GL<%2*R"4\S
MGV?<TJ_&-OQ[S-POB%[?R]S-FC5N'Y$REEQ\*<CIWG,C-'B!6A-5-J;B7K9W
M'T-M^GSY0$'K>[%1+G58\ ;7'C,\\S)>;$TQU>VW(1O!,LCH#77X7BB!](HJ
M],L@WUL&>2R>(D \"9HU5D1?/GDEHOT;Z3CV@B"SBIWT<ZW^,I7[5269R R5
MV;ZT'250)WLDR+ W)-^\Q[<>#HKYO/SM0]T?Q-KZ?B%%:]-I.=]\GF1J>C^7
M8O)IP-JX(3X>O;^Q[[.VS]J/S]J?W%?_AVQ=&8]G@RBS'<O%R":W9[/97+X/
M-3;NJV=2]\>Y^!O+SWP>_;[Q\@_BS)!NU)/)B3"10_M1GDE&PV5]#A4NC(I'
M@JD$XW/F9Q:&^ISY38/C'\2ODUYZH^YEJR 7!^G1,*_$"_7H#/ K[O*/!1,)
MOY3;YU@O<>S7U7I?8K!FUQJKRB&^SEO"H)@-5[C89HP8#($%)(+1U'7L6:_4
M=M]*"6E%T28$)_[#1Y7Y@>X[PZ]Z-K;@5QE^&7B:9W?&IYFOI9D;-R(+UCS6
M)7";DJAL1/@>\)9 )8<NZJSO03N/8<+ZPN,O)X"[@Y?YDL GA(<B!"]4+'T
M:!ML4U;- &\8HFD$ ^)NHE@";L)U#_WR=AS(0TZ=W_%_'@5*&Z/F]$.JD3H2
MDRX>LJ4>8U5D00FG^+'VL1'9CCC19BK86Z$,B,24IA+L4T\C]J(%F&G5C14
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
MZ*--^)RE(QDQ"H^0/(J.>MJ'Q+ZC2J.6U:8[E0GKN_4VH\S,ZL=V^F4UU9#
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
MH%0#(C)@*[R*W+D(&\0^*:)-50OP G0:D1;^;!_]=WW3--@ Z%F_XI@:UM@
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
M2F3#!MMJIF4NZ?&HJ&6982^;+:;M%7$=1I)*IO5U<<Z/N*RESNI8'%]/>QZ
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
MZ"7.;.7W]L7N3<$BILT-3<5ES-<=QO:V@GTET77,[1N^H@O>V=M[VMV,"M;
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
MIB0^1X&#IV@#\?9F-P5Q.9S8].'Y2TTI*:).J3KG1)W0.'I5Z SI^AE'*EV
M9(=- 7;;^ S!?RAZO$_ [<Y?HHA'+)JLL5/7]H/#9MX>!!DQXIL8$7_$$A$C
M0L"("!$A803]F, B1H2 $1$B0L((8".8B!$A8$2$B) P(D)$2!@1(2(DC& >
M\6BR\1D9\<'>Q.]F-NYH9N7;&N'<X_3VSXIN?B1T4PC?"_,O?(3VDP)S0*=(
M@GY,@MX+BR,)BB3H:TYS)$&1!/VP!'W#J-Q@9_UL Y8C,?EX+'*#BB8*%\**
MH/#)RA>#B-N>9!XT1KX6]7Q#PA7$%[<M7)L&9)%T_83J8FY=NKJU9B19D61=
M0+*".N!(N+Y=N()(YK:%JV4ZHKXO6Y^+9KYW3&7B^9I!^6K\$=\22S6 /#B_
M8\%;'V\Q7=LO<=X[1/3[W+'/]Y/M/.F#L^Z,?#\1WD#5UY,J9U75=RX@F\ D
M$I!(0-[T ,,_,WJ?AC^YL1$1*[22%:F>*U(]F_C@E@4D=#L;GW'\G]K'TZ<'
M ;!/R@.BP\XY>WU*$+\$+C@[NAGC]U<HFM+@PO-@ENU<\A./&[\<Z504EV@B
M7I9EWBV7QK/NC"[DQ?VSQL0'SAKOMIS)6.9TYQZ>SA43N\U"K'FL&2_'';X9
MCVL%C)CB; 8V%Z68+YTK_OMA.^_G8RP+(<?V9VFD"K5XBFCDAGRJ1L2$(=,<
M%Q7O#7[YS40 SUX9_OY1AK'S6#_96[63G$KGB;PBI(LIBOWUIZ+J7V48;-)Y
M]?CJSNP-IWK-=#(WM"83;0K(A ZG3)$<C+X-60U\Q%O#>F; QSQ)T,1XGIO
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
M_WWE8?P>Z3MRX:\&S_[7TP7^!NIQ"!4=,H27"*9&B';0[QW(JP)>B<ZFT?M
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
MSS?X+$44?737R2>IUSO#//!I6.=S<+!<86C$$\QFQK3+>#66G.*,-G<FXGV
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
M?*N\9LKU!=U.1\)$6R1C@KEM4TLFO7HXGS-8?]U(3% ,DY4D,,%LP9QAG&7
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
M!'<$G(&Q.H!_YY#T33#6Q,P9$'1LRL+_+5G) MMK^Q_")O!I+U@'7N5F\*L
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
M#(\?GM,<%G*#=B.5YQ9D,2Z49_GU<M[@\<-S-H:%^MRUA1JGZ%VDK(RYXJ8
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
M>Q[P;6BM4$EO,),;K;ETBT^/DJJV& @RH#7H62>>*.H$4S@:$'R?T7L9!=@
MIJ2/P#F&DKV"TWTFQBJ68YBZ'Q!XG1#D&P@Q6UC'-&%E>6-P;']&CC?YP!\=
MI,S@<"&OXM9KM[P=0?!A*^J9X,)I!HX&39&8 - 8G,R$$P7 %PJ6)=G/L:[D
M3R&">YMPUH[@#3KR-Q)@,VH!O$I,D 5%M^"!7'_@P.%><%R/!.X*S@4Z9^+"
M_UR8QAF+KXUWE%8ZWYFPG5ZNCN+\4%@RC:*-)?>5UO@91)T)7KPMK!GXVA;X
M8?LLH.B]=MFZF +V_EC9[1:_NP 6U+RP &IGP@5+9BHS@V-:K.O..J,9YJ10
ME('SP;\X\14\T> ]_Q,>*)%\+=LVUM1$+JDY>MS/Y4H9RR56X8<27EO*3+YN
MYUEAR*SF]#1MHQT/2N_K0V=!"3"$-U.UR'^_:3(/&0:$ OC-\SSYU3YIL),H
M/,?:$Y_##/T7!)\%_"[X)("(+OGP7"GVV[FGVV%IXG; V9&17E[C^GLBTM=-
MUG/PZJ06^0#7 FR"$V[8X!9KX]T!PT>1J=Y*\",F2[N<DR@G4OUAOX(PJU]_
MT N1_'FSL:X-J?.5K_! RNJT6[@RLWFU-> VO08SF:3FC5^G3HNZG6T8GBOK
M:!IAIMQ*"J72Y8XFF_$R66<@<A]+LKP(ZP0\2C> ]B1H^V.=_CH2:;?OZTYW
MVY$F"28TSR9OE%8"*H?7:&^[HYN.)( 3YE8UQ<FM.7J>:II(OM/?]K_VVOB^
MV)9P=(5A_MX:D#LW$+0/QCU;4I80OTNP, :'_"UH*\&U@ANAZ6><W$:8?K\8
MH83O Z7I?\5>?X2O<7#M<"K&SN7N3;WP/[4_]R)X]D&KX@""MC'_C6//U)4
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
MW)=?(7F9-]C9$"(Q^! 3 ^"?P6ZY+_UU8] (6,+L$G]<CJ!IWA\=TYN)XTV
MF -K0_)'[(2F#>(N!>RV062"UWFG]6&.7]8*LC8NLK5!MVD0<88PA=656A^>
M"["?W-30VX5,/%/8S^R8<Q1#HI:%/QX0&/Z,_= FA2&#1$02(0$$]DP0$2!"
M (CD,_I#^PV'#! 1:PH)(##T.1Y)ZS! (B*)D  "2.M(2(0!$,EG.J*("P+B
MS"CYA[Z-J_NRS_4:_I@>LE^)F5^O:>Q'AG^$+]\47T:&!F_*FRKU:3642-P4
M=T8P/F!&R'-WY+F2W7*KGI9?26+:CD)#+I<*_ITQY0)L!OON(BK2\1Z&[5[C
M9@[(ZS8-!:^N^=V &5>](>L^ZS'&C\*1PXA$CZ .1M+],7#I!VN'P8#<"'ON
MRHFNKC'> I-DV91DP7Z#2Y&N&.F*D:[X&8+R\C<CQARIB)&(OS<F_6 %L2G-
M!$4'AX[P)U(1OXA+!=TV%=U21I&*&*F(]V;.WT%%#*I[(M8<*8E?Q"1V+9DC
MQ8JTQ$A+_ SZI,$CV#C%$;0(@R(]\8O8Y!5E1SIBI"/>FS7[.F*(YTA>0H=T
M; NV"XM,_'NS;E^/_-[85C>54:1DWDO)_-ZX55;&DI]:\]*^+L*SNZNBWQOG
M_E%T'^7 4@WZ8OY]";WUKCW03\.V7W]2@B;H(RDFV+&BH#NP?PZ!/<6.3JA^
MO)[PER''NZFLH;JP0T([!;].[7%KP>Y'%F]F)G&=LJ8(*I%Y.;O8I&<55-[O
M<LM8?&V\TWF,Z#;Y;GG5,[D%CB26.6?9%6M[;6T+U>PM&ML&CMP=7=S/%'UI
M9(N^]"*;3X1*2DP2*EO*=.TJ/6Y/$&3E=X#'GN))XHDDB.MVG7Y0BKP- 7IM
M.!Z"@?_/)3L2HO<9:')KKI/QQ@?S7"NSY3L(8W6)<8=JJ=TU/<51LT=.:HVO
M\AW\/EQGFTX<Y(QLHP*>U7:$%UF4,ZWTYB;-IL5IWVW&E\J8D $OBO_Z0\:?
MXR=TU?Z!?.B^)F"H+NR01A^NB^B'1/220;,3)('M15];TW>I]M1:Q(4QYRJ;
MY*P5WVP& @/(*'$JTR*?L:MVXHTH[>S>'C]/!:!#AR77-3R@$N"ZW=RXWB&2
MZJS'26"Y8V627Y;^2/P^XO\E0<N+P+T(?.J%4_7TJ; 25Q*..GQYGB/7S)R<
MP2$:&.I)_,3%QVC<*)*W@S/;_U.G8TP.W#5@^#\S2/<-4[<>QJ'QY?%:M_5O
M>'1B%?0ZN'!#S)F&91VQ*GJS<GN=3/5U-;=)C6NR,JNUD[(_MP-/T$\T&;^Z
M71%ZTKNA,^.;JRU_[];YF+SD<VZ*+W.3BWHMK+.8R9F>B\IFF$;G\4F7<X>H
MT2IPQ"2?@3PF_NM/ JBRQP;=_S .\UW3(1_Y=B+4^4)/S1]].1_UN?P.E_.
MP?;/6)M;V79Q>S-<SILP4U,HP^PGZX[_/+XA"FOC"Y;E2"+X9G#)OA+HZ8O6
M[N"C%UHYH@-F1T6'R?8S2[7+2 5BW%)[](#A:<_.I.-/-$H?:($7'XGZB"@4
M!=*C0'IDH7YLH6Z9SV>-5(9GQ]5LLUE1\:G5:0VX>%MM-P"# D8J03RC5!1>
M#X]&$,;P>I@O+$*P!XDJ/^A]A3$>'5H;.-P&;]8PQY(2!5A_3MUC9.I>+.8:
M$(]COJJA1U3-."+8F-">KSFI[R I1*!6+6O%)[VL\L13$DM>WQ0./3[=TNZ]
M,^V%P0@.+_N)+.)/6L1'F-&9-G&.J?&X9DUT=-8W5\O4-%'7C 9@5, FIO!G
M(@K<_M@2XT>^O0BU/C9](\SZ@AW\HR_O 0/#IRH5[U=AD]_ 5W?^?6S'.GWK
M2&]H\H_W2QM(OI9M&VMJ(I?4'#WNYW*EC.42=S1^3RFH[O>$J9;.NWU6R1>,
M>EGOZ BYXC$TJ*BFZ*=X'/N.H98PV[_AOXTH[GNO NI3^,QC%%!OI"HQXFI\
M%J4&-D$0@]3$41J0]P!S-@[,V8CO7$>JAS%:^Y5BZ!/=/@]0#!U7^-XBZ_93
M;*LK]^8273'U,0-)XN1J:.(Y^0VKH<,JK:-:YY!RC_O7.I\BJ$-;ZZRO5V3'
M*. EU5WGF7%^R?2;J P9$2QVCI//A]FA/R(:_Z#%SOL,X[,3I"\U6?S^)<SQ
M9_S+W0]O4-%,[BHV<7[2'*DU>H/G4*3$QH5U-S4N]^6P5S1+O6)[,*4;!3:'
M5%O%1&.:S:U6/(;YJ>;H$Q4_QDP>J'OI8_C"[U'/?#Y5_<^%('__TN8;\)C+
M1,W/YC*/4^G<SF9=C:LOJFAN5JQ.+6OH;A 9\I[XKS\T#339G\5YKN9,"'T(
M[1L%LD/YZK>I/[X_OC](*?$W#Q#_],KA,-ISX?((?5+?ND'*]+6-NDM4!^M6
MH4KUJ.&0771T:MW,QUEI FPV'-IL!($_8>C1G.@+JDYWIZIPVW%WOYY[FW;A
M8C>1M1>.JF%^4>NG;;L\8]UY2L+R^22]6#0@XX)EPPD I.L:?'<GRRB@'#[;
MZ&%0(XJ:WL)X_.YT\AWC?@];A1M*2S'<^?@_TVR\2:7MLCM0ZBFQMN!<3![F
MU&:EQHQE'B.\=./X$Y:\MED9-B%S5QLR5'6V=S<HP\N5(NLR+!6X?6&2)<1-
M45*IHD@M"VK-G709R,!@[^3$\;94WYA]7<^8#"\UALB6"B=2_*"ZV/O3RS<I
M<?WF <M3L>/]BM;XM_-'A<08/;R&?6(B #&)AC/4I#!04UA35_=SW^,\G>],
MV$XO5T=Q?B@LF4;1QI)WM$]/*89=*4LUCS66"H=D[ '9U]U180ZL4S(HAD6Q
MIR1ZK"CM9P400A;VO#NUALR,#>$-/:1I>SY'>XRRV^0PVS#*3BW)+DI%+)X<
M]>O2V.-RL(L4=G43]NX<[MYZQ[O1T@>CT],+=$_T"CU @2Z6:Q1KZ9+8184,
M[\1;U;DD-5:0>!*?XUP$K*0;_NA:W;OI$R&5EN'1)]Z)5M_]AL)B'WVN,/@4
M52*TA<$I+%4G6NN2HU+C)$G5IO->*=Z #! 6!B>QYX^TA[!G!X3(Q?F3O;NW
MJ1$.Y;O_9+"'<N;NC5I5WJ)@-92O_I,1_C;EDZ%\]Y\,]E!62WZC6:Q1^/%3
MX<>.9-F2&#/,F+2> V,&_&P;L25X&D4DHXAD""SN;Q21]&F-T44V(+6V 1^=
M$JB<+I!QG!2RFEJ2+11QU%J"RZUXC(H"E:%P+$:!RBA0&04J3V5SY[8-EIO9
MY&+@ZNALV='-U1COR/T&9'Y1_#**7_Z ^.79%/5>6!-[K<MA"1VK6RD9%4J9
M_EHHS\QX488T%84U'T[["*EL#8_V$84U?T18\V,^R<BR*<F"+7T8]LRP9J4B
MQA-+U$426$GMIS.MG*=T1&'/R"\<A3TCL$=AS\</>Z;!F8>F K;)2]I2@N\!
MMQ1T"PGVC2@ABH=&8(_BH5$\] ?$0W=A-C<EQ(/:2R-9 9J&@AV+PJ)16/3>
M%OLW"HON4->[\4\JRY$ME*^*J%-A>"?MVO.AR_ 8[<<_T23V1![I)/2]P@ A
M]D!&\<\H_AG%/P_XV9F!3GQ$#]D-OZFIM8HN-7!FO)B5&Y#+Q;T1; GTFW.X
M>^L=4:#SOH'.]TGGXX@F.],6':2NYMD%4BR;A7P&1WHR))Y/1S2)**(9133#
MJ4]$$<W'B6A>AB'N1RRQ(R%+I&BH&H>5UBAN))>RW%I:NKV"'!"&+!/$\T>M
M\#V_SG]L^&V';"_4;JF+(^_4L6QE[.ZB+_P_AI\W<+@]D6*V80M:3-F"+[:$
M\(L9XYCAPS@F;>>RQ$1O?DO,!I^"XA7\21?!X[?^)N]?,@90'?Y Q%:"%1/F
M<]-8 QRT)<V-;>_FE#/^SX5)ZLL=0F^:,W P?Z(-P?7W]("J8)J\T2@H=EV=
M\:H;+VQF16E <&OFUQ\<A7K#.Z.23X%'##S1P(>>0@5%8A>*)#]7D_VUBW.$
MZC;HN+ZI:XO\_'Z3KC\-Q>E4%AR[FFRJ.56P>C(F]U&D\>L/1CP?FQ1Y/A0]
M*@T3(/%=0!(\FJ8QBLKUDUQKDQVW\Z5)EATQCP=()=O*LFZI+'.UPEQ)X2LF
MZP@R(,>C4N\SU&A*%LPJ4I: P3['(&??,N[8'!KT,>\=X57%C->,HQ<N?Z2<
MRF/<%\2-A^WH[,\J8QQ[8IA &HL<$'OFSNBRNB:\HH;G/6G"NRX;*\GT?U)F
MBOW6H^+A!1U'2!>1V*Q:0ONU9H-A<*>Q GA!/9/DUS##-B+@?1YXW'S^(?"6
MN:0L-+IEBE7D@EG*I&K37@T0-0:$[-%)OJ=#XWG/7@4;P5M5 'T&.XG*<OLO
M^&>[VT@#:ADTSR:!9OAB:D&E<.M%0O]U%8-J!'BE9&Y54IS<&6QRADI*HWMO
M_OJ>_[7[HJ^V)3(R-,/\O34@=VY@XEMFN&=+RA(R-"5!180Q..1O05L)KA7<
M"$T_XR^MFW^_&*&$;Q32]+]BKS_"USBX]IFP1G8N-[!<$4T:V[_]3VT?>4;G
M]IEA*1":OTU)$R#?AGOO[>I!T#;FOW'LF;H2 -]8$,0.N(0/8!6;F)#&_[M=
M2Q\#KO<S( ! O=J>K1P\ N:'%[(&I@;TFL%V^2^@%W;!_U<$]RX9P=#GUY<)
M;OGUX3YT#J[=_R,@[]$_<$7L?X'T@Y_\]QN [,$5V_%1!%_H/WIG^RW4A*TY
MW&1+]%QFIF.V5"%RYB8UTKI=&3!'\I=_ 2\K$3&56G02E3CG5-KD9C-$%P+?
M "SU8&63XZVIE7<TM#OHDODZNLE(E17O33/97RDSY?1XV%OC;,OHFU(>V12&
M2P:L/-ASGC)H*C,NUUG!+I?SR#!7LMP&3Q[NV:Q.!VEML\RB0DM-Y,FEGBCU
M9;#R8,]X4RXEG+*05TN(,\EM)M-\=2WS\<,]';N-SA(]#5.1YA+OQ7%V.&W#
ME0=[RN5Y0Y]5YC,V7<E)#;=&]+6&S%,\^G9ERR[5ZIFJ;:&E83G=)%64:&Y6
M8.7!GO6>S/718;[*23E=T*9N?-Q>RGSBR)YNLC'"JC41E0C4E8I.5I)[*[#R
M8$\S/P)G+(]L-.<T"ZU"H]FVD09/'^[97F4+B4ZQI+!I?D*U]7:AJU<9L/)@
MS[);C5=;(R.%MGJC6:>1L1E@*O#)PSW[4FMCXT:OSBVJ;*>0K.D;<PU7'NQI
MH6Z'6O)Y!W4J+)<<L<O<J,[P&'JXZ;2MK@H]O31"W3HWM3-99)B'4^W1PUWS
M2+)*5W)3D:-2U?:$R)NC9 [LBAVYTCE=II=J(X7F"MVA2Z!2K;AJP*6'L&]-
MM,2JV\<XQ)27Y4)IW2^YWI3%@UTM!-RJ(9""VJU-2LR&3%02J@R7'NS*3AVN
ML#9Y4<79M;UPY_46@GC#@0YV30QXV>T6>SET9I>-1+D\7C*$M_20FJE%&2%G
MJ06ZX*8+,MY3S2KO=6P\V+68[4JH[J03JEL<Y=B-2"L8Z2T]V)6?678RZ_14
MKM6HLC4EV9FSZ\8Q;K)6>+$QMZ021]5<9#T!QEFS E<F#J[*:>?7#,U66;=N
M"\9\V%;ZM:-\1R_5[<:PGQB@B]HDVR]V"TXV+H.5!WOV6ZGEL*-/,%1AJBTR
M64N,YB1<F7R[<HA;NIXA*H8J64/9:+*B9&B-8[RLE9/ 2W/&@DN[4\;(-XHI
MO"<?XV5==-:*9ZDEQ;;Z6@TSXPMM04/^>'!.TE7*JEA6#*Y;Q%N9><.>%DCX
M[0?GS*HFU1TKTI0K,?ED<E53\]R(.<8?M4%N-)C&$87#YPDTGD#2+%)GCO%'
MI+@4G/AB;*%2Q1[8(R7'R@SDN0?GE);Y0G(MBR.U-<F0\:Z]KA@-N/+@G"6]
M;B4'E:7,2FQ^B1/X@JY,F6,\5Q]K5 F?UNI<EUAE\G3#:91*1WGNHJOV[<*\
MR:BY]-IN-2>DZ-IPSX-SCG))QYP1^3(G$1FMGRBD:QR@T/CA.>/T?#VN\&A.
MK2F6G%HI0Y>:'.7C$V3#Q>EEKJ&ZJX9MV*5Z;S%DCO'Q;KV;78H6X%.SK)04
MQ?J(<<!]4H??SC64K";WZ@W6C;/]=EG%4958'>/XY,10\_5^GN5*O5P_95N]
M<M%L'./XPR%=2.H-9<AV2T@WD:N,&IDI<XSC4ZW.TB@.D!G;Q:Q%>EW >R[@
MSD<X?GK><V;C;&+-Y>9)C6DT6&FV.,KQ52I?:6/YM<-2[I >=YLVE6ZNCG'\
M9GJ\JEI6E57=3)_CXL.FUAL<Y_B#=M8<3Q;]B3I#>XLZ;B%N 6T<Y?AK8HKD
MT]/R$I4Z541*$((U<E9'.3ZB3C.MU-0648KM.?,F51";OG XV)5#NS-QCHU6
M:+>0[:"U-5MK=KRE!R"EQ+:X3 Y:>;8D%%+:3.J5:F7FJ'"P@3J470FKB=IM
M31%]Z9C5EM@X*AQ<<2"P=5)VT<60J)0:LQ+?QX\+AYF2PX1A71VJ[EQB"M,9
MUN?4X\(AF\Y1X]&@;W$YU%0Q+=\OI^GCPB&NJUF3:3AI=H9.,RJ[3"4V??FH
M<$BF5WQ^@$LXZA1K?)*:\8F<"&X@?K@KE[+3N-LM;5B*[T\&F:K2-U(KN/1@
MUV42FY4VA+92NWS=&-C)*2LZ7HWNH8*P,I.YHCK14 7+EP5CC0TS"08N/=@U
M-4A7E1:+5U5J@Z8QR:PGM8&WZP%@6VI&S\ZY81K--5-Y>\BKR_G(RT<YQ*R1
M7C69[,!&N]UTK]6BR&I_Y2T].$"KGI+:-2FEJ*U$#E4K;LI<-+VE!P=(4%I*
M*>+2AJWU.(9R!DE$H!D>/T(PO5G):CF.,U1KM<QD,>BDA36 "GZ$8#+K%)5/
MC_MU+FTE$F7&R>!XJP&7;@_PQAW@?W#(9Z6%I28L9(SB[+*Q')(X[>9D'B[%
M?;<,^(0D,O9'JXEKN ?>"UF=Z1]@8I8SFT$W); ;823*L@7;L;R E6/&''WI
MMXRRH(?GQ;OI0*>/M\!S7DT,#<:AO:#4\LWBV%P#IQ"\'0\\HHH5FYN2!3T=
M(EPS-C3-6%F_=WT6%\]N>>/E&DTDT=&DVKAJ!"_KN;@8Z/M5;-<SJMO@*U,:
M>*E?6^1@%Q;&QO-S7NTF9U-L(2TPA%[]BDG62)B#[6W3D2[G5 !&>.!^V37,
MWXVK>I^$?SPQGNK%@%]\07Y2P0B 0@!Z[>_M#[N'@MZ3X$#0'3#R_0U[/@3!
ML8U]!X+W9,_H/[3Y#_UJMKD]6/"%F/_2IQ4C4/1S\J^E=SO^B)W] 1:;8X")
MVUO;_NZ5"/SV/5\K<$\?.IT"?^&>)T,86H;FV&\]&=<9@_R,QO_"$/S/G8XH
MNW[2KR9%87^M?X[@<A^X8+CG3(T $S;  (+Y:QU9!)<[$<PS\=>"U@@N=V-D
M\8B170\P9U:%?JB(W>,2CJ>@>KO19US-516A+]\+_;>P\O&+^FQAQN&_ERL1
M_;M6<N7H^V7PZ3[Y]1\I#M\,P8"Y"F_.2W7Y)+(1S\GK=BMX<V,'J?/D<_P"
M5[:MJ4&^U*DJ8MSW8MS?ER5%[#S$[/P1KBYB\ELF'Q1,'A.&$:./&/VW9_2W
MH3*_4XE/9,;XHJ9-Q,\C?KZ#:3E3 ,\R@AVQ](BE1RS]>H3FE:SX-!84HT5L
M/6+KU\*VK* $ZH-7T^C_.-^J%!&3CYA\&)G\?G\1;+Z.68:FB+=H+W(;LMR9
M%1#Q_1#R_6^/@%ZJX278_UW;2WT*Y7[]20F:H(^D([7RQ*6EP"->SU8WN#13
MO_U5G$M')]7C7[MU+L$'*<(\+&FO"C.)62L6+UKRFF^]9CTS0=+S3@F\!3]0
MD:#+B.<G_6E;5.-E#E?MYF"9K901M_'%]KM?:#'UDN3LN[1J8[^>_TA[RG9A
MN1IR^5H1+6%CFLLL:PN%A^5 ^*\_)$T_T?BQ":27#7,\'MG>JF7>\<:5(;\<
MKR7>!=E9_,>PLTMTSKT50SN[Q\@EV-F;!J*>&Q5Z4:'AO=]&Z)7#Q2N9DDH(
M+0Y-"^U6JD (W8(-.5S\UQ^, GK#Q_SMD6QUZG1L]*Y/$A_-%K]*SM'#IK"%
M6=7ZH-_<)1B5D>AWA'5M4U9S1ERA$'V^Z6"K^PT^\&CJI=%9SC2L8UI7<YS&
M]6'3$=0T6^AC31>;MEC8(@-H77@":%WD^PW.'L5[<0E?Q3W:%-]T<%5H%*QO
MR+$NTWSM+CSKEJ,-]CG69S2L<@,K @NS)ZA*/X/4UXEVW00:5@)J6#C0L([-
M<+F(AA4:V^@,I<N?9_O=/5_A4,-"9C5^CM?'_HD4LPO8D)W3_&&,TBS%&T0J
MKBI">;XHU @GZ;4/ YH9@1)/%$X?<+-_1PZQ>VIKCW=;D8<LTNENP.P^H\LM
MBYUD%BD4LJSD8%5JFLRGU ;D?]!;EGA.O-]>^;M[R[*&.9:4R%]V%47M?AD
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
MZ4;=D4AAK(&5"X0I97*#*1W*E(=/FYFE1KZ9BLY:$I[FQ%4AWAK,E-Q )LC
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
M9L#R:*:*\$&3Z#EWC]F$-TSHIJQM@3KHLV*SJHS-[D@CUL2*GL]*E:H&G0R
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
M.Q+4^I_=T+([A=J2+Z#DB0MSB^%ZWZY.*M3XXY^KE33\W8FUF\"\@M?0 ^U
MU\TE5&](M4-2",K=U24K9 %H8C)\&\DS47,8<N!@QW0D/832,6@[0 G!K_TW
M#DFV;<JJ]^%2=<;0IF6(?TDUX!57H9EIJ^@Z-OQ+ \;O?7F\TO KPTZYEG?W
M/MWW3)OM-\T].Q_79:T2V] 9DB@($6G53@R+W=%;\VW(8Z"X.J@,10.]U,B
M,E3@Q), !ABJCEV' DC[%MU$1M>$MT_HIJQMC7K0)W1V(TR:0T<K-!>B)*[7
MLWP3W@A \Y_!6SF6"R[A@*YOFQ[J=A??^F(9RD>:V>#W[A_[3\S!:X]][S:5
M5H2G/6/G- D=#)W?DNN8NP\\E^I_LO7>_I@]=[X=@S[9Q7CD_Z#W=JS=@VUO
M2/GR.*W\&V4^V:VOJ(LCUS?A-8<0'SNI[?XFT,SU>V !22.64$[_V5GX;POH
MT&@7X,TUM\KP;KP;*@UL4W<=\.9%;U&(]G]WNJ'\&[[:\W__,O)A&*R7X.D%
MIE:Q.%9,\!1#?])R@O6" ?.(BOGB>N^G$WX@UGM?KA:#/_'_0N-_JS#05N5K
MK0=_/ 7_M:1BK^-:&: 5F<M4(P[_>[Y2X\?P/K>43MKQ]'4QY27#E:QUB*'"
M9ZM=7;@'\AOF<WHSZ#&#.>/.NAO;#/,4_=XVN5=F\D8>/\ 3/X;??5M0. ]R
MCLQ95]]%N$76#?<,7L=;HT+7O;CI:U@;-JZ_<^NHBGHF?WY_&YY__2GNZM7A
MT # 2QFH[FT.0VL@G973"OGUH,GG]DOU'J@P<=Z7E_38?B7=-%?<>%30,K%A
M-Y,II.PU\_U%\6<8I$U+W"W4H$WCNV6:LFG(KF5!!WYDC6^98_A8B9CK6H9=
M])IDH9^+Z+4^TZ=__>'"5.2"B^0W(F -(N], ,$4S#8]IL^TZ_UV<=FQQ#E-
M1!<9=]%6*M_?X/EWZ.&*\42D#Q:DD*3F V?)VSD^OX3H83WTT"<0==U3_L6=
M;@89R[3MD&K(%I!L>&MOYSKUG]!6EJ&9U])R;^G7'<S)> (^<"'?W'KP38_R
MSLZ$W X*=6"[.MJ"D[;,:=*'@]_@M>]VCCB;2K?73U %TA0KS72DO,G.7+?%
M]UDT55-A-GK!K:G72#:#.B_C2?@00<P^@MC^3(MW5VM:9+1U+18Q-E5]GIU]
M/Z*]&((TOC:;U58V+[9G>ERICB.#8@\A"+%JAN-'S[UZK/3Z"S-X49K9**-6
M7+15#(Z6'->!CP S;%V=JHYG$#9.M&^4: >YP_H<8@S]ZQ&C@#I07.]M7CLQ
MA#50&?*SF0Z-8Z"#AH^VRK#X K5C^4=VU5\UII.I1E<'J=ZF-UP7B&4_@D("
M.DP>X</[!Z?O5TO?[PNB)\45EP;E30*+,X.R8L]K["PM3 1"+%>HJ;Y)=T<(
ME'Z401V6U/ZYZZK ]TKVP% N5:S' 0-NO0E>Z\W?51IILC?:< .Z)ZX3C?;2
M[5ED;8).OX8S?20<82B<_%]D5@\RCH)2'0CT E?79(N.P52G9(;0.;U?2O$3
M&AUUS;Z_P'5L,L9-;-=H8FN#T%A: *@\J$UUJ (E),FRY4*K0='"_]L]]BG7
MNJ_IX9W8M#F6G+;IZDIN"IV4(PR'Z/$6J-FZ+CG@V> YW^#+DF7UHTFKYQAD
M22$+ JL5R8TN\S!J_A-Y.M:N>;I 0_ 3'4G2:PJT@#V#SX)J0^_U!TKP_YS0
MWN[#$)+<4RCGH/Y$. Z:)_2E#GQ'U)%H@Q=E0[F]>]DE?(R083JA 8!/,7=5
M"YH)' 6=N3P.R1*\CCM#SW5GYA*YC;FHXB*6R,1BA);)Y8B>*@V)6J-V1G/9
M]INB!X:SZ7ZCJ:=)^(9>7=<;!'9/[.D<)H< :7;H.JX%O&3!#JGH<M!^7BX#
M_[  G.!MH#R%7KEO^/A(*2JTP.WS[W4B[/5;R#J\- H*QF_\*(.<UR4:+M[=
M6T>SNR#H:[-Z+/).Q\5_O6HL>2Y3H%Y0T_J]"V3V)+!M:*&]F&8$"+]OQ3LK
M\+>D+Z6UO6OSCSW1SZP[OY^#(<8/\F.Q_PF]_!.]QH'849OIGG!?M9'ZOWK=
M2+K][)/FF:T&'7/VFZ:>N LI\$W(RNRI2_I$5Z&QA5S$?S<KR:/=-5[3B(%<
M@?XJ\=E^].N/U]N,<)4TO1[=ES*\M*_^#PW<$S(!X]R7E]E*^>7#U]HY$+O_
M)?0H\K_0B-#_0O^.?OG/&X6\TBNU%RMO;^A_],[E=UI[ ^5=/[=D.1S;G#)K
MLMT0944=BZ;EUOIH*'.=/FY/_2C>^@I:8: S +H*%MOI3W5\+R;9I@&5NWXS
M.S[P3-: 4D4D,I+A),>2,0(YX[T%0+O^+)_J5CS\%)'7[/@ T/2R'7UTJJN!
MXG!32 YF M%@R8J>7.2S%ISJR*=C^?/WI[KW(A<93<U[$Q[\$JQFP+"]60[]
MTH!2A\84FL([C9%!Z!Y=1VAF0=E9\+XHKD&_\^?" 7SI*?I^NSP7&L#7A%,L
M"I]FK@7O[*_8;2=0_X;P^0V_>AD:K$.Z">6$OD&7F;B6:BNJ7PU]NG*2\%T@
M/1N+'SYZP2"<JX#MA*"IAZ!\)=U1P5::\.M/0M;G34I[^GD*\4>#6>\.;SYD
MPULC>+'B-W?Q<AS+*S;[H:MAAA )AZ5"5;S$-4B++_P<QU_JVDHZ52\I1*AA
MH05C]+BF:X5L=V"KB@JM&'XX5#W7!E3+#_0 M$]?_#/XCK*E#N ;0^OTB$K@
M %U:VCMTO3)2+QEY#O[AU^N0Z9'<0)5!VY"@U4/AZB9T+-XC3+8YB^IQ5AU%
M!/I,VC)9H6>%5T?//Y4FIO^TKQ] LK>\*_;O0.H",X@<63!AGUC<>!_ QOO/
MN-.P7FZD%TRY$RA"A,_\5R"696[0[A< [L5@RN7B.P2NTT/;]=*>LADJ^A%=
MXSFB^ZL#)3">;H6G1Z 3V8(KP#W&YP#?_NO#),V;PE'M@W<5U3D'^NYQ-V$3
MIH/YO73P 4ZB.GO7_S4GN$>0UVM_]==[ V\YM7VAWP 5IX$20ILLX8W3 +I2
M2;^CB2R8^Y@N'_==;)L23=*D7^NT5/-PD^B=SS%?0$82_J\B/<#,$E1T/$CK
M/4U2T;,#)O#HV,X;!?ADBCG%$\:/GC H/&' 08TEC)X>(14)*CH>9L*@Z9\W
M8931^1!K/%'\Y(F"BN&) D$!.&-@Z5 49VWDQ[/%8\X65/SGS18)H(]4%^<5
M/WJZN$"8%!C_^!52-V#!^YP]= J,*&X/#SQ5W/%4T5BJSL8/I_!T\:.G"[QN
MX85.EK11S[Z$%QA)W!X=#S-;? Z87?M]8';5O][V^?T]]H<MJH%YQ>^_E+1C
M7TA*2FD,D@U"+$0BQ8AHSX1"AT=<3[_\9L7GD5UB6HM/>R)%SKO%)*W5<DP=
MC/KTX<AQA=X(*ZG9%.99NLAKV=8F71WUF3[Y=F0F78T52_0::)DTGQ2S%$C/
MZLL^>S@R7E@2"UE-SLBDLN1+>F^12J809]/!R U@[&(UJ@W(BMM(*V69SD5F
MHSYW.+*QSN0:K1:3%(A6I$EVFA5IP-7ZT<.1RUESD-D8A0C)"?U:91C)C!=9
MOA\['*G9:@4L*)?6UK.6)&U(43,WM7[\<*2[*6:KY,#0R"E#"LUQQ\TMY][A
MS0=#2^5!,M[*YQQ2BLL&98#^8$&-^A1UY/XQ&DS:C51.++12BT&^2C4X&>J3
M/B)\U9BLY"DP2<E8#AM#45O75[4^=41/7;8KZVG"I$BWP#&69#8JZ0U\UB.*
M*JRF?2G=L%(B-VM4*F,+C.T)?-8735WX".(Z6 ##!1[U*+PVZA9LJ\XX"3%F
MPEL>'C@\[.H5JZ;$HT*[+<45HRX,=&OIMUA"T .%=SX8YS6R4A<ZGOA@B]\'
MO7A?WW19-AW@3WQ4?+>AR2<!WPDNE)!@L"P#.QRJ LOK&(5_A2H#Z+:V[5AH
M6G@>GC1MU.H\.&>#U5>=HN=7%=1KZCWAFR[ZM]_JJ@%^P_D99@7P7P=?>W?Z
M[>T2_0]JF1L"KWMS:V.!["9[>]"XWR.&FO90'[K7GR=[;;SVKJ55V;V6Y;]6
M:.!K_;W&N0L#^!AJ>=L&#F\HSU1#QPX/S\!(:]:GHKUU:IQ.UT3 %,1)!%KO
M.,&_@?-'0^&$A@\;OZ-6P1C[%/VAG4]'C>:6O8%<%"LB (J@Z*=(#&OB?)KX
M8DWH4Y=T\5S_JSGR%?N5/O819^FT>2V'P+4C?0K/:[4;_4WVL N&_ZJQ" /E
M=D"YA&0.[.0Z1XCZ> I^>]_?X.TYY_Q[N-VT0G_RXL0N"3W@]&'.#;*;R^/6
MG.1;_ 1RM>)K2Q5W=KKAL5K'<XWC"%ER.C*RD^(RPXOTM*55;6XQD%J[TT#C
M828>/_L)25>:HM\NX7UM);/N$WDY6XJWF046JNG:^OJ@N'5O$W00'47@@Y*[
M/PCE0[^PC03JS^1UT%% 6<%;'/$8R7A226980(I39^C2=C_2;ZO;0PDC7)@B
MZ?.?=A*$,.,[7L1/:20=N9 +N0L<:N!0XZ8>1K%'JX_=R^X81[2"ND-$9;AU
M.D<\3"DB;JKLO&.0(*)IZ;&\=-DF[Y]Q%J7#;.S4$QQ.<C#O&=9=A"G/)V2&
MAE"XH8%KJP:P$>WL=+ CN R'#.#<=Y3RN2BN61; CB4XH<L. *DMPW+:M';C
M>=D_*")G)+:P2+Z@XHC;88D),=:2>@J^@]M;5TL9:1WE_0.7*.K]DQ'.[W/N
M+L[Q3YU 4<[47("IMR\ '>)@6G#B-T)@Y6\0>+C8)UA^Z<X.I/Q!KNST&&G/
MCZ5]] A;\!SQ6)M85*\-3<84W)ZS'D>,=+NZ6?:CR&/%#M.P1PB2_K[8R^)0
M"(="]W(2WE?+N3-#LHUDH0O(9*%3ZPFZK$US:%\Q\@B1<#P:Q6%,$(N^.)()
M<#7G>U6N.S_._LL%XX-TJJ:!]<3LY4G7(,UL+54NRL2R'_=6EF)A)G:XLO3/
M=]>B Q.>!+1(_)-]R2U#E-VYUW^S3>/2&<]EW,CYJ\*Q>J.J)YE43DC..I8T
M[78::8)'[4THMN'"#!W[Y$3LGQO8W*Q,C..: ,<U/]@]7;NV+.J+3478Q!:B
M.J+<2CG*Y\F2UW )G1<=IN+'RLL_,!:Z42'Y1_NDX):(?U3B=:8:\;O[=A**
M9%>2N?F*;.<;R4Q;BI=(HX8:N:$+BI.':^J7RL;N(";XJ'X<P3'2;5>Q&.BB
M%--%W:<!\%&!#**^<8#S):O2=&>3G E@10OM=M\I-'IFLLIYQ!!H:9V,A&GR
M:KE;L..?I'\.,8YO</WG3GW#KHMO6\C9&O01IU SLZ,N46D9)-#+C3(S*:M9
MI88H8#RGP(9IAL0%G7?\!#H+D7" =5:66AR,X&#D_AS.A\%(V33D=ST0-3*R
MM)&<IH5"I58A:6J:K5(UQ"R%,J+H22')CJ7NWZ\X; (.C8?C47J'2^K*=$H'
M#%JG>'+>1M6NMSEF."3-9I:Y@@;O 'T=VKW)*5?\?[?';^0+^'U>2YY*J@&=
MY9XN7U3YC%[.1V]9LJQ^QTI69R(W[6H@ZB25C17O%.W1KS\1.O;T?HO 2;N$
MX"?Z=A?(CL-*M4-@-8,R DK(,4,# +_9+7_OB*^&KN-:Z M=V@Z;[5FFN<=R
MYHPE)R3!L:YAPX_LH0K'_\NT0C,)SE.2#G6^]\T_J Z!;@ ,!3T3^J<%9B8<
M:HS0/513>0JUP?8)T8V?'^[Y!>#K?-^H3K2I&7S]/A@G)_5->\IHF5:J+D\&
MJ>R26/ZM4='GMBGX(3J]4]K;6DG0>^9E#;A1IL?.*4VJ\/I2BSJM697_]2=V
M&);^SY>,RU>@C32S?;YWS001YGC:-J#@GA7V/E_:6[%N!=(_22#"UKRA"X1#
M*L.&9W[^*T(-6TX*V@V_4NT^JE7V9<-V^@K\R+L52<%[@@IME[)98B#0? '>
M?I6<]Q.C5XHC;"#_5EP+T?[8P/B6YCYZT*H'!FI/CUTQU>G7ADJ.;,0+:2U7
MF=?5[NA$]TRS?K?:%'X_?IE0WLSV)ZE]"0,43Y<[-KP]_X$.90'2$$;T3V^I
M8O?OLT\CM,>.).M LE!(.W[#Y\:@B>@2]$COGH!+LWL)S1>FP1CW#EW2?[VB
M@7H.Q]]$#WL2V-)/T5[X/0*$SS+ER?:WI"^EM;W+_6)/]/,9WK^?XW;&CZ-C
ML?\)O?P3O<:!V!&+W9YP7['4^;]ZS5.W_>P3JJNM!AUS]INFGK@+*?!-U,+L
MJ4OZ1%>AL85<S7\W*\FCU%A>9&8@T.JOTHOM1^@$;90N02^(0G>TQ/>L>FE?
M_1\:N"=D@B*?7EYF*^67#U]KYT#L_I?0\<O_0B-"_PLC+_3+?]XHY)5>J;VT
M;GM#_Z-W+K_3VC.=;2QI50HL4>%(,.^L$FJ4Z<<SHV/\R*/!.CZ06PV.K$3*
M,:&B<5*C63O&CQSICRF!S+=$P=4+9(S,-=6BPQ_C1V;+J:7< GU97'>JRBAJ
MJ#$CQA_C1^8FN7S%H$>F,&6Y+KN,%=-4B3_&CYQIL*ZXU@E1<P?BHJW:F61G
M6#O&CSSKJ<YH5,JLM:DM"%-YS*XBY=$Q?N218D3ZJCMS-$))&KWB?-EHY);'
M^)$'Z23OK'2FKDTGE<U0(S8Y8"V/\2-GF42O-1<95YA'-DPOZE25CCXZRH\L
M91FZWE#C7;%AQN5DWTWE]%1MGQ_Y#8?WQ]2_6TK?!TR\GHEZ/3[5:R=<ITXN
M7^6OE7=O)7EO=0)][8$M?,('&R#Q8 98S  ;7.)1S  ;$$5@!EC, /M3B2T_
M(6/\WC(+IH3]7$:[\!)3PMXI<C E[%WA;9?%_3W:;K"/X%6.$'VB=^)282YK
M.+\)_R/,&_M1F(/)W.Z#:. JO+&>-RB#HULG)"H]2;7*,V'-ID@CQU(K=;[T
M:6.9,$T_$OG(5_W*=_9S-2W)L(? LM'2+52$XJT. 76!2BS;KKVW5:E["P."
MO,\K\"'00Q+0>@ZF#F0=6K2*]CDTS?JSU1_Q.CFV[+3<<L(E52,97[3Y&COM
MC7SJ62I,QZE'8IZ]AMMYZ0N6X/]!EV.[NK._Z65OB5IQ+:]Z/@;;#2=>PS :
M+$VA8% E?>O$+'_KRX$;>[AH*5@^#$=-@:-W\QS<D;:]]UD."ER&HF.]35;C
MN+P\M9-4K='><M]288ID<6"%&XH#[H>"W5#\P+'6E_W0%]J':U;4R.3MI2*J
M3G2USNFE&K^J^>RXW%GCKN#UZER_LG1VDDH<*^%8*7A4EA]4F*+%I9P?-^4)
MR:VB"I.,&7TJLN6V9<(D?=9SB7Y ((0K3#^ZPO1C:%3.66^*3-KIIA/3;6'>
MES/M9&5 Y!LCGTV7"D=BAZ1-W^9,N;,(!Q>;<  5I  JB'W/-Z:-^GKMJ99D
MZHD,[_2T L];]8DQ93O#'6-OF'P<CA9<>'I,GQ3LPM./"<$N68;*%".5@9FC
MFJ([S_.T5"U'UMGEE@68.;H ^"B,,=>O0F&J.\PN$_0HZP;L,A]4K>+13&9H
M%(>VF-$[M>F4+8A-M;;E^8V&6?K00WU"*K/?619P3#QN=V/2M /;W)B49JH#
M+X+2YN<"GHP>^#EEEF5WZOJ4)#!]AIYJLVU4M!^96&9/,#M%(CWN W>?3<:9
M:#DYDW#&8J,URYB+R3(ZEY>__E#QIV,\=-\@DSDRP<((+S *.*GB?T$%%#2"
M&>E3LDERM42-S%+I,KWBH0)B3X<+C&=2 /O/4^@# "&"GBUB_"]MU48MJR]<
M'C/)<8#E$07M*E)>.0IU$6^G"R0P[X.1:2KPF@:,&H"U4&7@U>)AD"#[U_*J
M[EOR('O' Q(ZN</9,>%;O'Z#-W W9-U5?+8B6T)5?_0LT.-HP.,10N1!!JK/
M+5&!+C#\4W^?M)S!:/D]01ZUWE2V.V3HF9$5&LOU.)J*,%8^ JV7>WI_I>HK
MQAL.E Z^OG_A&CI0YBNA%,^LXF0RMU%+Y68YD^[4D [.Y4 @7H*D!GI?#4R?
M3,8HCLMTXV)CDQXVLX5Q6I#YJZNAT9^L.8$:VV*[JCMM<C9S4QTXDT:>CE40
MOZ&&G4-= \FR$2<:]&F'#'K(,CV-(=F$T7H#8HU2%]"?'9 L72+*OBDWPS.5
MB4T.Z]V-7JT)1-=.]RNY-#6MU([QS<SIF6QS924M3N>$OFQT(A,U@D:R;T>2
MFTVMLNJ2<;(Q:\U;I%N..QO$8<.]'5E<5^*1CJ[,M62O%:GEK7E\,T4<-@>4
M*_E\OEE)4(V,F,QE.";7%:*2-CK&=C.*Q6KQMACOD@U*G$YG^9S%C7DX\N Y
MJUDEK;I49R: I!D=5AR=<N;H[@?/F:X4\BTSK>=%*;-L-BND/!IE:L<8="!.
MEW3?HF8:6&8*=6U9$3>SHPPZ8IDC2%647#'3M9<+?A")F=)RCT'G?1JW;TYY
MK^%;0:1B.4.&,0AO*-Y?@C_#IU1;UDW;M4 3WC&AF[+V:\=@DRRU2IG"NDEI
MZTR]VP92,Z/4>=\-080 A7<^&+=EN@D!Z!9F\%D<RP5G*TT<5!,^H-[\>F&B
M;#K ;V:C2?]_B9 GM%!R#.\#7MHB@THEZC^M[#^M%[M"W<\LU0:*GP;.7=5G
M3B!V#)5>F!O>*G>$(ELOR(7IL1\R2@IZ-G_U KE2Z$2A2F7'7YY5T5FI'EF#
MO0UCQ]("A 8 H)D.7L21-/A/;V^) X7A1<;H?[TO0PO)0L>KOKGH3(=A]%.(
M?^]I0_"-H*#@R^\"6OB4T"N:T/GOXNHP_&@*GPY>UWN\73COO0$*X-&[#4S#
MM?T8'$QGNKD&\(^)Z1,R#M8P"EY[8C/V)1?V+H+(;79SR39@1Y=!XM:!EV;#
M03!^WLTX^U?X8F2?/$4U>X_PPF0DP1_*ZLQ/^U_N'X*3IF&Z#DQ=UNC7J#Q@
MN3 ZV!/LFP5Z]7GE'DZ\"MC]X;&,^DOW^_R5Z-W1,I<L09D_A;;KC2\?^;2G
M,\5[,/0BH3F<N6$6!6\\D&"&Y5W!ISCU]?[N$^]?"7YH6J@>^F9Z#\QD?I2'
MR@[98W.Y9:&"YF,:GD*AT,W7:'Z7>NJ24TA#'@/%U4%EZ/F6RLPS/F/DA8&&
MLIU.$NOD[LD/YY.YJ8Z7!4F-:H0RTLOC23U6X?@+S1"8#NO<=%COK6!P[!-'
M8SJ@Y\O>DB&+Q+Q,05 $13YQ6!$!4 1&1$ 4$7]BL2*"H CJB<-TED%0!$;$
M>17Q]_NY/@UD;]N4FH2_&5@JO&X6Z N W@S=0S)LXBA!V)5HXSZ>8*]!N'A*
MOOT^Q>+9-G)]$O/= ^G;=N7$%PU#A<_$Y86-Y%2G?W$C89ZBW^@O/;2+LZ'F
MDW D(#P -_"LCVHJ7VR$N_RD'#L(3M13C,';'N@MBLOP-UT@62$!+3__W[_5
MN_"9#\3'ZLV\CTW'ZF_!OX_9^,Y=;H -Z7LN^;PD(GC&_GGF<\AN_+U9_ Z:
M?G[]>7>[P;FSYIM+X]84S_Z\C=O'@]&KN5OI3[BV:@#;3IK3@6IX-]Z#1-U'
MA-<&<Z3KJ2H+EK+HZFF2F$EVA\L,9YONE@TZ$HZ1QP[C/6-4<W-(G5YF./N\
M$RP<!8+'ZKJ\QG\%G$(F+KN*  A1C=#<L,,2+3:&@,,BDBLN'OV<Y.HO0SJ,
M'8R=LS887 T[>JQ2K\>C#"5*+7E,EAM]*ZLC[' P>@U'N/>;]H);E?HF/M[?
M(RK+%G!VG2M[.T;O:"THJ"$LCE<#%J^^H""Y#P+>LM"6:,_LD][NZ)S!>R1B
ME>$[/RFJDE\WH([X'4+;\,F8.B(TNJY$Y(A<Z-=+O'\(090\-F/?40$O*',S
MGHAO'<1>"4U4K,T[:FFHBLG%-#X<Y*5*=5:#:((1,,6%&>8$PON 5S4QI@**
MJ:L'MU?"5)J9C+OQ>*(F-I+5SK@_9HF!B([)\2+CV'G/D+B[2F_]L-L,UWBO
M5.,-,$,?CJE_OT+&MNGUB'NQK4RZPK"9'EG8S-15S[:G467D'U$3CQQC6L"U
MW@O5JX*,IT!.^9<-HT\$$+ W1BI/;"+B/-DMUH=,):7T$(!0S!OFJ/=9,G#5
M%Z,H "BZ;.!\(HK<\:BSJ!CMEI!L&VEW[<)Y<%*#*()1;O2$A9/'*/X^QG[_
MP(:PF(TUR &K1TKPFHO@F:+@B,=(N:M:7U&R%2W9[-?<?*E:8"W>/\(L&F:Y
M"X>N07,=%YMA@PR:0,ZGEXU*OX@240-QNC2)2R2Q!NZ2L\1& 8P@2F!T2L/P
ME#WAY"U<D<5(N</(\XM(B5),CC",EB5..THUI=;):6^ZA$CAT+8WECW&]7TL
M"-VG^WYA\PEX1'F;ASOLPCD2U*15I"J?__%UM;>J2\;M7^*J$CX+<57.\ BJ
MG+%J*3NV+L11-7R1=#@$GT;R5S%\\N#%E@=M $;P#HX94A$[FO<]NMC>;X\P
MP/GD8HHK@Y"Y@^ +03&Z[(Z4;.][_\7LIU#3#"%2L-MRYKZE-]]ZF?XKDT06
MR:]4NX\.3>G[EHM$<C"H!*8#8/6CH]IX[H[K DG42U-^5B@D['KMVQ2OKVX#
MO=[>GBOT_W.&[*(3UIIF"GY,'65[+4M9=L':%9ILZWIBT8_J)6Z%>-//Q?8Z
MEFR?4A"=#V<AKE?$OJT:;QC2X =0^A/7\)6W9>A6C]$+0@,9 V@Y[U(EFL.A
M"BUO2Y+IV]O2M#0H5QGX=NG=9'N!IQ#O4;8=<M N@6>TLK-EY[; 5/()!M_>
M MK[ (0,<ZH:DGX! KM+%1;>S%G[# U[Q!.R#B0+147C-P1K#'J@2S!/[/D]
M&;H<8.TD0+-[!WI]P0?&HN\P4?S7*X:-Y_+BFX,H]B2P9?:@O:AN! B?P$,:
MPH?\+>E+:6WOSAJ*/='L+DS\_1P.,G[V'XO]3^CEG^@U#L2.:.7VA/N*-L[_
MU6OBN.UGG["(;#7HF+/?- S8+Z3 -V2HS)ZZI$]T%1I;R '_=[.2/,HZXL4/
M!O*1^JOX8?O1KS]-C\H/(AHMO[_:+RGMJ_]# _>$3%#DT\O+;*7\\N%K[1R(
MW?\2NESY7VA$Z'^A5T&__.>-0E[I]=594?X-_8_>N?Q.:\^\Q85X=3-JIZFR
M6)&+"R!&&+Z7XH\Q1@\6'7X^XHF^L(ZE*F:'=^M"CC_&&,T/B$*F0ALL66F/
M.%YH\\E9?7F,W3D%2DJOW9Q%M,9&+2ZR! !SMG:,W9EKSNOLC!=' I?JUV:M
MA#58ZZ-C[,[-:JM@Z%JI+KJM:(FO1"@SHQ]E=\ZID\ZD+^9Y4HJO>5V,%0<#
MD?<WY+\>:7;ZI3BSB=+B5"A&>2MG$%2[=HP'VEFU:K0X*6FBFTSGB^6959"R
MHST>Z!=N:25#MZ;VQB';(ZDP5).;)2/78$)Q,-)0IY.&G>W,1)H<5VP8;$VH
MS-)/TM]P=7<C29EE^SV2ENLZ4W7&?7G,]Z.'UP2]QCS77CBRUJBF^2*YL)+U
M">^?N/UZY'A(52RK-VEI\]BBU1]2Z4S"&WEP][*6(=VUKC8$B#"39GILMEX8
MP9$'.FH-9_%:E*X+8G):SE.I@IJ5T<%NAW>7E[64EN6GG$#S_251B U:(X$_
M:DM-+=:*\N.!UI['Y1%=C-A\?'3,EAIQ?B$/"BPA3).@S>@;5F.UT3$+&902
M_<QDU-))M9ICZ$R]-$SFMKU.KT<FHJP0;9:Y@C9M#7IB4TH8@\7HF"U5*_VJ
MS=4L7H-P+A/\<IGN+D;';&FT:A25U%#5M4:R)%)1;B(8D=HQ6^K1TW%GR&L]
MLJ*4EV Q58>CTG+/EMZPWG_,_[WE]0Y44G*$37>?3/>%"-FG$GX5!$+ P/AF
M[RB!C[.1\W#NGB4!*&TX7:"L=DYPHZW&H%=0*AGN ^+>5]>!?P!K 1+KYGH&
MT.8R^PAC;R=9+&0*J[0B%EQZGHBTALU4;A1<QMZ?3,^[6YJ,1S"KW$M\=TOF
M4:R(("@B_L0Q6!$!4 1&1$ 4@1$1$$5@1 1$$7%,UWY./7Q]/]W'0>LM%QBO
MS:9[64&\88AZ70[_R^UVQWA3S[)GZK/YZA[X^]J[):/S[2.[JJ4<(V'#AG(!
M0ZEXBX%G%0NVE:]/^8%D,3R0TE<F)3PI!Q4^'R]2W\)6_M(#!Y@"\PP>NK[;
M\W$O[CEPK@B;UP?FE=QN \+6=0/K>G3C:J*M9Z\MZWMQP0W:1E\MI46?Z)VT
M5 /:@_.;\#_Z^N)Q0M+]PVJ=M[OVSLB:[</PAS;;>DX[6!2+0>R8>[U+F#V^
M26#;D[!=OO>V"^S&"=NCJQL :@B9]':?P%DV&^2B0HGF"].^2$0LG72JK?;*
M/%-__/9ECO15S))NM^-&^;@VKY8L==W/%)*S[18;EJ4OV*6'T?IH:$7Q D6?
MMZCR4TWD,2WD%O[\RUT?VB"RS.0M0J0719<IEP>S<?),1#_O^V%K1HV=A-GI
MB5RU;14)05&FRYK/L/NY'PYFZ>FK\>1SIX!W$OR)V.-EV7*A6B[*NGOU.MV-
M&1DN7N>_2W?SG2VGMXHFBYN14"_6HZ;8B E$1Q(+'8X];S2Y11[_C+EC_(A*
M>;&,$(U84IA/4^UHO5F8"_+(9_"]* D$ABR&[-DAFY9DKT:&2HAPY#D!.[&'
M7;T3!6DR,YNFS5H-Z!I9NSY@USW;'?*B/=*F*]")F F776_X+4DP=>&$\*<A
M%@/V'( ]5UO'U>=&(6FZ'0.L!(F*RGRZ.ZXV/#YN&/-3T6,=W3^BK/RM-" I
MV>.08DG+D&(NS\PR'(0RQ.U]5>"*5M]T6/\*@,=ZD*R@*JV]7#MM6J_N>,S7
M,8MNQ%'GE$:OXDHI'[>-N;CTB8PC1PZM^^>QJH@8OC\$OO>3(7P!O((E+*3X
MT!)%VLT*<WE 3BK5'8GRD9P @_?L>0+&[F,D"U] W:2IKV2B3TFB1$RM5H$9
MZ@5JZ9,N<U3D,]3]X#6!LFD0\NN$P%L>@%J"!FF$P,IG+,!K!/>\5?"!G=2#
MY ?'*B--^-"V[I_%]%P=.>+])-/JY!5V/2;7?&T04^D$4(<CGT#Z4]^'<?Q
M. [NYI2?9B>!-I,[=O<!+&"?ZJ8;SH1+I<UH7:2CV6DL+1E&%O!;7N;+A*AW
M4,+^^YW1$5S!OE()+-#$\(&=^K Y87/"YG3Q&M\/M:8K'-5P/3+$NSB](8)/
M;SCGZ0U#T[6<\?'C&R)_<7Q#!!_?\#9+BKR7)?&YJM9C:38E<NXT);3;O*4K
MHUL>WZ#VRL)TL> (C<A-6;E*F5IFRO_Z0][Q\0UG/JKAZ.6@>'>'-JA;,:/K
M>M!905TY0%\'RGYMR^G7T0J#9Z_HKQ)\O:D[_4:Q]EW[CJT;H,&FV@UR/ID5
M2JE,KA9M7N1X$L'3E?_O^DY5QTV<45:@Z@R3CM">MV/N@E#:=7N)3/S]$YJ^
M9.+0# *N:6EU;DU37'E1KHNSF98II12M.(BU^"9_8TV/2D+?C-+)*3DE%[I4
M;Y<GW4D-:?K8)N&O:_I^SF4)4/AQ(9[V8V'']7G:W\4'41# <J,M-D)FW(Q'
M9KEX-A&KG9.GW4T4F\.T)1."6EYTFYO2*C/;U"[$TSY5#6)+@[E_HLF[=N#]
M$GUY97;V*U.O1[DGZL,#*S&+Z-5H=5D**R( BH@_1; B@J (C(B * (B NOA
M?'KXX@KMIU/T#^*T_-@A8$[+TV>Q>^!].S_]-+:?,_G\QR-@Q%XYJ*BZ4_I_
MY'\?FY?S_)S"V)+>\<2/;4A_3_"Z=<<WW_(2(.I6A*6;R^/F6X BMY'"W6T8
MP]:R\[0_Q5B"'O ^=RERI[O6:Q 77B.'#!HLKILV/RRITH5;$-]=RUU.)V2T
M*U6'PK3#VE5CT7<5Z0;D3$/225IDIKW0N)8KR/EDLK->U7SBPNBGY$P8L_=3
MOGD8R)YKV\2UH<9%(\OR4%['R4*5:)/+6*.S 5O*P<^A=H?9UW?"A0L2G.%X
M^H/L"W>\XNCB'&PN'==BE7:^S0L5.QO96-V..2%K/@$:1QTR(9^/T0##^_UT
M&:/[ 0.1+Z"2YZ*E3&G53VAN8C*;DY$TN5HL?6:S$U 9]+K$WY=YS]J'_A-3
MFX.5M4=LXKQ%.]BM0HB\8];FH[&@B)5A+^/6W815Y/E+GP]C)VJ:5,^,-V1#
M2K6'T=& DOM;.B2*NR M^T_$+(;LW71P7@!J53?54:E4TM3<:$06"T*YI<<1
MI0U["M1>M:[?>F/-5[9^ONFR1W\C!:LP'/!?\P?T8%U%TM(SP6>QFZ^UC.Z2
M;-<UO5@HIOICA4=A-KSYOZ6]D72I-8D0TX@F),TE.YZ[5+N3K\&1[-N1<WJS
MJ6KP&30IUJ!'L[P^+2;1-;FW(X?)4K;0*-EI4>+C^9@V3!&59 V&^>3;D5%0
MK@DV4RUKF5I!2LDI:V*M1W#DP7-J"9V+#9A!7VNO$INI0[ ;HX*N>?"<QD01
MDIUA7M+6C5EQH,N-=I9<PI$'SSFG!'Z9LL@YV:XE.$,FG,BDA$Y&.WC.?INM
M9QK2M$S27(UN;@:](H#79 ]'*L7X))J:)$=:9>Z(A59++PT2/ S[#T9.7'$P
MZ2\H5ZN,V\5%;UE:=(=+Z P.1I)51N-KQ""M<=WLLMW1ANUF@>]'#T>6@5R?
MR_-Z3%OWE%Q]F:,LA>'[L<.1::FI5C*::I/$A(^1V=JPO13Y?OQP9%/M%3H#
MC3+)1G$AI-DIE>]'1WV*/!S:&,82DW:$'9/TU,TV5^F1*LZ7?8IZ'OKM;KYQ
M7=8JL0V=(6%*%Y%6[<2PV!V]]<.HE)G6S67#G6U9#B0]!2>#[;G<A]UW)CNL
MB:3)C+7U2BZQ-56CN<'R0MUW!Y/EF[HM(J+]_KQ;-AW@ARLTM=N %:,IZC^A
M?6F$O&HODE$H9_CSV_[6M6 WG-JA&=0BXJ[P.'B]OE)$13!8A_[E(M8 U?AG
MCXD"S:(+U5$!HA_P&I%1C_=>JZIDV\#QE\EU5?(<+!Q\GO;3TPSVI7/T,]-%
M[W]HO^6T1;(#F6N1E9Y#%#8)KJS$+V6_9U"K/_ZY*D:?/K>=J[5T^P1>9ZGD
M.N;N [^SU/OD>MVG[V4*'/M$Q7YFMY&??#R1D1=?&* F,/J)Q'H)H%XH\N,C
MS[!>,%ZP7O9+42S62P#U@O$23+U@O%Q4+Z>O=GX[8KY\\?P$0>UNFX27&%@J
MO$T6Z N 7A3=4C)LXFCGT95:&#_V/1?OH?J" /?J!.\WGIU+,)\%E]=J+GLE
MFJ\7B+;K[[YT&"I\/IIE;#;?F3,N+ACF*7IH-Z?(YM!2L(_!QO*QL82.V<G7
MC^&X\"0>^RRV44]9ED,C=MS7O_YT@62%!$,!RO_]6[T+D)PSE D47X<_4P>_
M3?PO9W)_]]Q]S-Y7L+4K4<$@!QU@T_JV S]WRSTV*&Q0S)E"@0 T4WWY]9N6
MI("0),OPL1VT]"P#=8%6+\\-LJ )Y\;;*[>3?S"9"_Y24%=N GUO\\(WMT?F
MMJ>$I(#_OSF#WZ*C_@R.7R$;"A!>^,B^27-,K.L9<E AIX2R;#;X16%3&O49
MM$V,"=/Q^.4V*0<19Z=GK&>?K8(%KN^)YN*-3,P^F-C^3(MW5VM:9+1U+18Q
M-E5]GIU]_^CC$\'T%D-E<M0C['HJ3[KK80%,RTI'7B,,H7ZD<(0[VI%T]_/5
MI4I!#PZL8VGJ2="Z,++H?60Q?3(9HS@NTXV+C4UZV,P6QFE!_G[#S-].4V5U
M1O>ZY&1&)A-B*MJH9:LKAH<0XW[]H2+OGU(3W'+9>>:BBG=$U!4"8AS]!LN?
M!K_)^.*!KF?[+^[#/D920O(L8TVJA$CD[&YBE%Z"U6;I\P%1X1AYV!=TO@[^
MFZ/F=E-NL*#R(P/7$\"1("F[64TM9)'C^OF$V:RNRHTM@P\78RX?M-Z?F3P>
M7' X^BY>W@U&YPY(*X.YF10S5)YU=(.?CV>(90X&HW0X$CM6,_FQ)=NJ!6:2
MJKP^V]8[V?0!<N#@1ZT!RWYQ('O$]VPAD@)#@$[)%7RD\(;B.27>ZZ0[XH9&
M*]DQ*\WZ1$P2FD&T<OJ8'_$^.17%AJ/4I:/;H $.UYAP#'P&7%5:Q86>'<3S
M8G*Q("AED-_4K9I/+Q4+D\SA]([+N1AJP8+:M</G;T*-GT@KN91+-LC"H@\&
M9J[&%_H(:C"2CH0C''D"U!ZTLKNKCX=FTAH7=!^MH(OW+GRX*%3U;?Z(QXBR
M[K#- :J@5=H\.^D(?2ZO+[>4:N$8=T&.]YNC!E>H@E2ANM56A/>Q49J-<Q%C
MOM%(X);E7&G=+#+9D<^!QH6IV.%L>F^3RKT$J?<GAX>+2 _A\FX]MS)?U1IZ
MEZF1;=.JY:6V%,]D:A W, KEZ,O%H/=8/_'.A@"O2)T>(/D-?K :^+07UW&-
M+3:*+]#XR.MT$P218YS2@'1;LTHFL:A4RN2H'T61;#Q,4E%<O?V9)24<\'X
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
M=M47;0]\+.K5"].G4&AC_&'\X=C_6_C+N&X]51JK:TURNVS:8GOZ!I%7^>?
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
MVCUD?,)*!R.!+TM5IK\X9'=Q&9J%K.2,>VFZV;$!Y8-I[:#=^YRINUJF9O0
M,Y,;;K]N/RCZ(;L7VZ'9#>NTCY,C:2F"1W-*KW*'[.Y5"E+XQ-7FN"AD%:-4
M<O+V8G'([NE,NF?:OA/V*EK7S#[6C!4W;QVRN[FD15V001\7K9S,,HQ%=N\/
MVMULML=BI4:S/?)>*\^;;3:73Q]$L59O.CTKISDX3Q)&.+CO=S/H".0#UIP5
MFUJC/;%-,=.N/UEX6WDJ'D2<TA%[>=X8ZWBZ0#T$.9U\'*D'1SXW?#!TEG;L
M'N-14EXI+XJCP>+0>.H+ 3P&HE7K@:[6IP,+&(_&P?$,Y=ZDTV*['MXH<;.B
M,K'MR>3@>+9F[4J_=T\3^*SPJ.J"MPC'UN+0>"XSI3Q.Y\L^/N.Y1GFFSAS1
MWL71*RJTODZ15HNA]Y!N]J8"$XS[);J4YUE/E]!7R7.0G<\3]>X80%9K6>X"
M1@XL6AOYB!'/#0W&PM"##-B7==T#>E0?[H$Y<$( B?9Z'8CZK*PP';@Z7*6/
M#17R8/5Y5Z0*F^7"]=6FQ'Q]:;":@KV3N/868J?(U^Z_/>JH8Z"%%FB,VNL6
M%#W7%I:0=T&^SV]:Z.>"P#.4$%51N<4UR^<AH8,? C^_$I_[EX.TK0O;EX?]
M-']L[5VH:16V (9^CVP_&--<8:P-Y,4/#,"5[!2V)?!"$">[?Y[\1Q[RS'O7
M61?(>2UYZH.?VQ]V6XR8XH;[(NJCKKG5'E^2P\#=)TO1)WL$YRV_>;N&"+QM
MPS8/)-;C\>ET$T/?$;_=,;1#QW8>Z<+'C""BM@.Y_3V-;OUS3?P7<.C>Y=P;
M^^P1.5GQ70OZZ5?0[W=25NOK/K!PW%DF_G%&-+%+#.WRWD[MQ"X)7A*['+\C
M-;%+@I?$+@E>OL@NQU>]?9HQQTI4GX>W4#P#/N8>6'. .HH>*3M^^LUSV0^,
MZUGGGC\>0?9T _CF5?_;?T]]TO0%!^;0>_R/%[6592>4O=5Z="@B=;HJK<1M
M+J+Z\=[ 4'?9S]5_O/649(Y)G.6SSG(-P9U]C_,81TRWZS>]1@ [I<)KAD#V
M,,'1@/:_?QE7 9ZSG!NT/\AOXM*74)N+[_'\F@B/7DY<2U3_ E_[$M>Z^-ZM
MLTWLZ+W7%47^FYV\;MK#J!/L@",NHQ7RQZQR\UKXM+)G5SH6YUFSQTQ!YL\7
M'XFK?!.QH<15$E>YG*M\+@9?QAV8X_N,=B\!#>L$<G#ZJ)ML%D\V?G]TX[?O
M1?<, -JM]%+K)UNYI>%+:E0'N((/DYRE^%!]FI2Z0MBS)P^+97$4>)\7A=DI
M2$1[#E!G^T8PWA8EEJ(-4]!^2"@9_H<$W@YLCK-)3FN)_N+1# -"]M(3J4.R
M+2DZ*HJFN!2!4V?<&GYIR%TN_B1;2M_=TWTTL.[Q@.FGM7* B^;J*<BNQG)Q
M]7F5LM, JT_C%-7F5[Y .F3:?&R29C&-:L_1V:@LF2(.:B[<4#A+L!4G;+W:
MKGTTML2Y*"J%@L&:LT;;:N-CW<BD+QVT#"_MKHH,R9N,0W:<>4E2:G.$+73
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
M9 MSU]!^01:>^<!?BJNMX/_&@6W]_?]02P,$%     @ J9)E6HR\G$TW*
M"RX  !L   !D<V=X+3(P,C4P,3,Q>&5X.3ED,3 P,2YJ<&?M>G=44]O6[X;0
M6^A=@@(B*B)-E!:P4*4(0BA"Q$8349$B):$<.HB BH(84!&4$NE*"QT!D4[H
MH:B@M(02 J2\[3GG?O?><^X8WWMOO#_>&^-M,L<@*SLK:\XUR^\WUV:,,F8
M?C,C4R. B1D F, _@#$!G $@S,R_7N#% KY8.5A965A8N=C9V3AXN'AXN+FX
MN7GY!/EY^03XN+GY1?D%A(1%1$1XH&+BHL+B@L(BPK\F88* WV%AY61EY13F
MY>85_E^^&(V   <0P1P)83H , LP0028&*T #%PG*]/O%_#GQ<0,KI&-G8.3
MBQN\H9(?8&:"0)A9(+]6#7X:!GX.L BP"NY7-603NN#&?N".L%I$:BZ'W.G2
M)A&;?J*\^I6[D9Q<HF+B$I(*!Q4/*1W6T#RA=?*4]IFSYXR,34S-;"_:V2,<
M')VN7KM^P]W#T\OOGG] 8-#]X*C?HF-BX^(3TM(?/7Z2\?19YLM7K_/>Y!>\
M?5=67E%95?WA8TUS2VM;>\>GSJZ!P:'A$?SHV/CLW/S7;]\7%G_\)*UO;&Z1
MMRD[N[_T8@(@3/^X_J-> J!>S"PL$!;V7WHQ,0?^ND& A76_*IN@X05VMSM"
M!]0B.(1/I^:6-G'*J=L01:[<[><2E=>852#]4NUWS?[G%(O\W]+LOQ3[IU[C
M  ^$"=P\B   !VBV+Q,. ?_/2+K&C7#1A$,YS/\E2NH&W.<.>O0 RL+/\OYE
M_'2COVR8)^3MHF$.^X5SPL _Y>#L<_=,P$E)"WK!W(!5^,*_B)V+E4UE?\52
MX=[2TZ+EXBN>^1^RFXV%O3AOW- % /GT'P:B!5@EVG,&X*$,(Z<3GY3/I4 -
MY8-%2BK]\APGS5#>'V8Y]V@?=LX\D8=\47UA"ADN^&/A:4E]S/VFF4[ H9<)
M?\CK'HD<UC\5.C_0QW1.V/H/^0_**.4-H?FIBTQ#-FSLN3W*@+!M8,F=U$RM
M)'<Y8>"G$M.OH0OG?A>1=0Q5.&6>D,0 W*W"15V5B,=>\3TKZL8Z.U0,.G7<
MYE$17F[QCE1_Y!I,0MHCFN%$1^2.QHH6O3U+A2;@9P"#0"F'MU=DT=]]WS.
MIGWY#$# F*H72$YE +DU+0R )0!#O?4125%$M/CR4)UHA75'9C%BBT3O&I'A
M^@V+JWZU5Q]5IO9EOY81A^ K4:T,H*4>YWX3W7FX'[WV%D?Y!J"</-!$!')<
MR*3&U%=3F=TY2?JI;\6]<VX_GB; 1AH**4(,@#6;6!V/]=GL39 13V^^^ZG)
MLOQUK8MC9$C=V?MQ>NV[9'0<FFB6,K;=3K;IR*=X;32+);U6^!Y?8,;UHJ/[
M40VL"Z>&NVE%440G,X#KYWR")3H2=3G6;[K<&A%,<Q*\7>@G:OGY.3#S6%$Z
MTB '.@WE#L(:D1HBKI9X2&:_*7]%,#I8U5#VR%RX(*20#[I9[$5',0 WS(0W
MDO:(&NCK$^)WIR!49^B&W7!%TA/^A2@_@"XA]A82"V'/?HW:\P@>3HG7"-F'
M.%^3L&?9$'',I\3MYNM2[1ACVTE^0ZH'\Q;H;C*P/6^J-0G:E#(6VR&C1LR;
M#-"F9[! O>\<Y5;+]7Z:6I;$ 3_R_BOBJR$#B,32!R1D@QK^W(!SJ#?H)C/<
MUTY]10: K\32GQ@BXQA 675T!4:*/H#DK> -:-<S-QZJW#-WKCU57N:1:2!A
MR7%2KJ^/O0K=@D=[PG:EBM!$8T\&T+[( &)+Z /P32T'],R#00:0C/_) *@Z
M$^0 !O#2[B4#(-BB25WPV6E">35-L%B,OIO% !Y8LR_@E[/!K9*FK)$0Y"0B
M^V]UQG/>.O50^V&YRMH(C42/9_/[XYF&F?9I)]"2;!^SC]>=:2*4JC0R "#H
ME05)++9!^H>V:_6;SXH5=;]U-TBP&TG<5>^]XSK-Q@I&P 4##DM6E!\=CR;:
M3RG.!M07!!G/VF>[S]5[]61R9P=L)7H23=0D#ER4_7QQRZ?KH[0H-@@T5!H5
M.=3 2^]L4!K2\)P>1 R_4!8=_WYBO/_^UW@)JQOK3\X+]#T,0<Q6-Z;\%AS;
M@4V2$26*/KO])-!I:J9Z[WSBQ\M)S ,FQF$%17<(XFL&,A_GL!0EL161N>Z.
M%U9QV^,WKU&K=BWJ3I3FOQ_/2IFS0/3!9UX2*I"QQP:"4(I>&8:6YX-_.W[I
M50@_"3. <T:)HYLT] &J=I]/T0+1#I>P-@QDV9(@E:WE)T[Y/!/((=O!DIU(
M^50A!#F0E/<\5:MEPD<T *8\$N^G7!079L!C33]\#@CU([+3N>%O)Z8G/'%B
MH9J^_M=:CWB_D#DC7<H *A5J51$RM1)6TDK881?(I0K2B>A\+S+?N@-AHL,?
MTBEEU"-5<%W!@<TV\J2LP#1.LTX)=*,[E43T"G2VQZW.%!K7(.YDZ7OKIB8'
M&:G>$9,P14Y.DSNA=7QB/?+$1B9-RXXKAX\5T/Z5C$I#K\[K06<90,P:U7!.
MSQY_KO_F ?5+!%<3N0>:,J^W]0#I]' U;YOU52ENQY);UTV49XW23*]=?I?
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
M(U0:%'[,64E3;$X*<OO S>.3OZ0R1YJ)JYF_O?+YVOGGI9^L65%@_(;#G^*
M4$<2H:G'WAG#0<$X$BM7E\]K[.5'W9>^<I:==_.R]Y@SG>O<GHEF1 5<R+<J
M->6XHU.\*IT!/,:TXVZCY%"?T5PHY4G-CL0&V*+DU/S7RJ]DLVKVI<,@9'?:
M,,'-9#* \GL(UR#*U1O.IT;QV]'PM?03(%V*O3!$O4/"=QQ1_M9>.8\6];*4
ML_ANWOTQY?J%SL9>X/81LA6=,W^/QY7>XPJK)V&2W9)UPTJ<XUC3WJ.7N\_'
MJ(I*2^R+?-(!'"[0\]OR;4F)H .4,[?Z*"I-XRHQ43RZF?Z9QD=2C-*ELD@'
M:Q/^^63?_R%9J/,'ZZGT"ZG:J.:8+WIW[WQSGOPIX1UR!?VM/.>[0?UIGELG
M):Q-98R)5N1C1/8FVJV%-H3]>M#@W#YJCS]ZC@'P1[]8=QS]EJF:_#YIDT.-
MC<WR",$CAZ51N.+"7QY\_/_R?YO &&/_ U!+ P04    " "IDF5:P=:,WNV'
M  "CC0  &P   &1S9W@M,C R-3 Q,S%X97@Y.60Q,# R+FIP9YRZ>SS3__L_
M_IS).LB(RGF*HE='J0P[T,$A94JEHE3S2LAA2(X;]D*)S:F49#IH.K .1.68
MP^A@0B;',<Q:V-B8V>&W7I_W]_/]?&^WW^WV.SSMCSVWY_5X7/?K?EWWZWK<
M1M&K8 &:AQU=' &0"@" E'^ HA\X (!55/Z\E)>J\K5L^;)EJJK+5D(@:LO5
M5ZJKKUJY:M5JC36:JS6T-%:MTERGJ:6MLW;M6G7H>MUU.KIK=-;J_%D$!%;:
MJ"Y;L6S9"IW5JU;K_'^^%/6 UG(@1]46#-H(J&B!P%H@11, 4_JY#/3O!?SG
M JDH?52#+%^Q<I7R@0I-0 4$!JNH@O]XK?PV7OD]H*JU;,T&2P<U[6,7(1MQ
M.KL3LQXN-]W_NF'M\>]\,ZM+84DK5JY;KZNGOVFSN<66O_;LW6<-M[$]</"0
MHY.SRV&/$R=/>9X^<Q;K^_=EORO^ >$1UR*O1T7'$/])3DF]<3,M.R?W]IV\
MN_?R'SU^4OR46O+L^9NWY17O*JO>?_C4V-3<0F]M^]S9U?VCA]G[LV]DE#TV
M/L&9Y/X2S,X)1?,+XD7)'UP@  SZ7]?_+2XM)2X5556P*N0/+I#*]3\/:*DN
MVV"IML;A&.0B3GOC[L3E.ONS'KYN6&%J=9R_]E+8]Y7KS/:,;!+\@?8OLO]W
MP)+^?R'[;V#_&U<?H X&*<D#:P%H0(84.*7MF8%<Z0K(?S+L]_9&PK0C+B?1
MVURZAYH0AAZ-J#*UZ?6GE'<P&@:QM*%;U*716IC-<H.$P;EAL@(X!\33%<#J
M+2RH9+6% DB T6<?R_4]ZHU$Q<9U&Z2!(U^QJF'0 W0XG+>(CRBX$$['TG5
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
MT,[O2Q>DVQ7 PPR((7[JO6P+9HK(?TGX^@46]^=VZYR=4<P<_:QNL+>QTV%
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
MR*:R[0$]=!,F#.(3AN/E'Y$C^;OL9:A<PUUMB&N\89JY@!K^D6;#-E$ A=W
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
MF#41,($U$LW+9_;^$#"DVJ9R%_.;MH16;Z&RP07Z8-TA=_!=/K-.UR@+CQ1
M1W,<6J_50<A&8PA<L>< K)PAS1KTDTW^F96A3_>7Q:>BDX&]&IJ$C[^0+ES*
M'/> ^A9#33BO54K7V>$$(1&I(=1N?+G&B5!+90<]#)R$FX&K%$"$1MVNA1;\
MO2GQ9H";#?H%GQ?*ZS*V7-(L3*UUBY77-3K9#[YF5ND T-S7AIH@78DQH1U?
MPU4#Z;9W0B%<B>C/M,TN"'W/ALS*R^]])A6QP+P.=_#[W>JB]E!,73#Z]I[(
M=D\XI)]DAT=&MQ;_$AL:DHA#)+4!=>/'8+(/+=P>Q$Z"(-(%TN8-AN]L3$,;
M$$))1/WC:>U>"D9>L<5L!\8AAT2GBBGM">IQLA87]C#2UGW]-DVR0_H\W(B^
M..5H.;E<F=>43YEQ127P!:2M I"4 /M/![>,QLPQSH?3:W15M7+2"1AJ!:2(
M8914&8P1'V?YLG41A,/ "K/7<A-G.&+!ADM1 )XUFU$>+9YE#ER)._0S,$5"
M:Q#G]M2<5@FGG!]P!XIRY)V5;O5C,>H+\_+<A(R''W$%L,;.%+WC\ :.H![=
MF?L.H\=B&W*4B?$\ :".ZQHY0H\54$*Z^K+PK(LYB</<*>&, [P]U%FOS5!"
M'I=TWFZ@NU,3Q11!D:HI:;E!%02!1[@WDNZRT\<$Y;$Q!,O#NH4.2.0LO AP
M,;R@^5XT)5-Z#05?=X_)48J+[HQSHV%D"ZZP"L%BT\"4D$_D_;$:SL7C-_5:
M8B5AZ"9Y!& ]9#9F.$>F5<DOIT= 'AN_IR-B+Q *NQ-2]%B^8Q>.$U]77D-$
MB#BP$AU@AROT&#&=73)%=XN!RFO,W:)]!"W1+/P)C?6TS[O">\E4%OHO]]UJ
MNS3L(B:O *;^_:2"]"5MNJE4=D5O(-1:J\6*X5.\V7ZP/Q)3:1(3HW+%?"O#
MZ%6,NTK)LG=C++;N3!ND\KV(/NO @,P =DNQ:<=#7=@#L)(_9YM.:.Y5!N9\
M2@+H,^5 -P?.$K$KT9T)UK[AOR C6?W(#PO%9@FZ<QTC'['Y>OO&G=Q213I
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
M4-#%#A5_WY$:N_GNGOY^73WS#;.D\,P3HA:KGMHJL5L^H=Z'>%ZK\L<)KZ$
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
M)FF$QOS("&^V9=[P33KG>::N^\D_EVQ"=OC>+4)&WC'76\3H@"1@@76CL:7
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
MN-;=@07XYAC'BL#HNW+6W3&Y?LC(WQ;DP[Y)Y3?9@ _F>VE> RT_?43X<ZA
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
MZO_L3GF>ER;,]-&]!A;F/"J6,U<EI%O3B&]N8.'40K8+^>A;KC-0[P-F&VP
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
M,I8CT14="$&78>35$%-;F@<R]^)'47UD;)>9$MJ&O#;13!WB73.U3;G7%"=
MX^P&'5,2R3ZM&[:.,+2J3;XU4V6\T]H^._KWK.'ZGIQAF"V)<H%6Z8NF8A?4
MT9S?-[HC)-M]>_E#061(_$>'V3:@RSS83X]@L3?QH)5Z8G^ DTN@1YS9VPF0
MY;-!/_PTIHAS#8T>8\9'/97;AK?&EY("5@4E\[LJP=HB!\C2_-8&ZXYU&URE
MI^!:P_;1T.T)U*$NG+)+^L2'K1 [4MKLFC(=8+'GLBA=G3=JE&"X-5'.<@F5
MCY:X*]< PHE>=@D )45K=:41$F=2U)TO^>>VBP8<9HF^B1"K&=%O+H$+UB-Y
MEX"&4'QO5KZ8<.E50O?,_.^D**+I*S]OM=+!)>50K,H8 26'>AYR21-#!,IV
MYJR'<"6X4IJ_!?W-0]O!\QNS'N3?ZA:&PED)I '=V"_S9;4*&JJ2*C$VPM8
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
MN K&RH'AR%.?RG!I%327VM*YOG-J\UL&Z;$_&&.Q)EH;Y/ BQPW56.NX\5V
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
M\=>1E3.*270X+8<%J,AU(W<A+2Q@J!]1+DC(41\E&=ZM1NV]=/E6<L8AVXV
M^QF]&/J]VPG#1XFK)\MM\>3F>1FN3=[":=YS3BF^Z<[N:G_0LG%Z#S$E5\KA
M:I'EY^9/VXO7 :<"MV%3 0 XDF8PA;.#S98AV2.>!&*\?%<7>E=L)C1W2^O\
M!6589GE_=HI8C^C)%5W:)C+#R3AU+/^<C7> 2EU5NECHB[<G5ASSE&KL+^X:
M_NAL=+$4=&H>M@]&ZM!T*&>W"WK'8HWJ4&@8C6^2^'%O/<MWSOHB!4=JPV?,
MIIZWG]HX^)'VG05H C46X?L:=4%T#_0CX5'T[<V)F+DYX86&U%8_7Q5<C&(6
MJKYD >F(.L\7P*\DU+49-;IAF1']18&?AIHK3OZXRP(D(B_YO@J-'N9M$2->
M^TA!?'EVAR__!3>WN&TPZ(+BR_'5V+QU04J036W,,(%L^V3=[Y9YTHECX_>'
ME,QE'!W!C]G7+_4@XZVO]S1Y.44VX1JF[5'$Z"(3C$@F_O># 56K']*_"-OG
MP&(K4R%=F]P^QEG*3L9.J;>5%Y3LY ,N27K, KH5G'/ 0PV*K2-NQ%2%;M;:
MEF6P$LY6)%UEX>'^D["+?5$:.ZN[VXS7)D>,UJB5]YCB5$P\=J5@FNJ]+I+^
MM@NE_# 387%;+E.R C+XV_NCJUN'GV:T6RG2*8_\Q;TIWVVCRMSP8=PAWNVJ
MCV[U-07JZQO?K2>EJ%B=":]?@(:[:BPW['^T"$ 8JG=FAFNM+T9W>4/?AW2<
M@PI/3*TH\-6V-L>,G=G0GB&CPMRN\P9]O,"A+!Z -]P'4[4)ES_0\LC62,%-
M66[C;*JS=-8W5;%C G$;NF=,7V#OT]AJSL-'ZZ6"+[4->XZN/;+6:$PQT$[W
M.1;LT,6A9&"\U,Y?19R\-%L>2P^8$S[G1F4!J9%:)"S(Y9IJ+N'WL>I7S6WJ
M00L)!1>^EOZZRY4R9SB9=[W;,WN%; !Z!Y]TPRWCE(0<K<[TFN5*26U_L,1%
M3S.-VBB#:_44]*>&/-R]D5\:<KY]G4W[)7&24W(9='LU[J#:J7:Y#Y2HT:6G
MACKBO-\]W4-X"CUM^Y7_M+@.?J?DGK0'_;Y*[H[O1D[Q,FWDKC>,[)Q7'9,3
MM*X\:^^L O@'6R#XIQ?"BUNN5G>04L&[BL-:?K]^'%_J=L4F\3#&"GG6=,(D
M!20SRO/%:U# /+V+QNA&+:PXFQR5'"VSAZ-WMW&S=;K=AH@VRZCC."V8P<]T
MFG(Z,@%M;<MXZXB>?5U<AY_:D"!9QF_4RIMK&S;]^:!Z[%QT6V,P=.,P:0LV
ML;G[C #SPL82(89AVHI^T>1SSH\*^="8L/071GZK-09-Z7_@[34^M\O?\Z86
MDW^5(M2IAFFIO.6AX\:8^BJ$,G_%56^YH.>""A<42D$DE\!<[QM0MXCG]:U$
M]?&%_8.C8,DQ$8QLX5Y9Q($;T\NH,E3-;LCD9,GJ7L5[5Y^MWSX&M%_.U(RX
M=(77='%Q"APH-]S.'KXQUT-AZTP8%9UX-$BJZ%9N10<U/F>;@/N:BC \# IM
MZ#(>[_8S,J,XKI<M/8LT*KVQ/&9;WB?_<7YKX LU4^[L34S+4_A?Q!J^;B@/
M78;Q(O)VQ0P-V[6+.=&<2PZM2RXRDWDWOT7F5)0(WNU5XX):$4]5N[8[HJ3[
M[7NU>]MQ6E\Z"+&:?H7#YZ.D]S&^[+J3I6U#4]JU^DE8,,+F:&[&_4<,"V>/
M8]HOFYM2YBI>.=*#EF\.KMD>0J\>FJ\25F57^[QGV_0O- B+?5>9+HHL?= E
M7ROR.&T>_NT 4Q)0Y1,"WPNLVX/;UVU;_7";R+T375K >,S(;E>-/$YSH_!U
M&BM%6E!2BS8G>?KG0V1'J^P3Y_=?&N?KRWCHT'D_?/-T4.N['=^I.K_3#/^%
MGD= +*').:Z;-NO[2D.:+, #_?2TK)7W$-V0\KTS<6&SH%OY1;J#AF?OGIHA
M!?IYD*::_MF)NMLX(_R> .]<#^POKQY[\Z=YPNSCBT=F,WG#/D$&Z3Z,UFAU
MHVY_23!_Z.(-F! ^DNIL[@^I&MJWWHJ#ZV5VO'>6Q]1W@[_CYYK.L(#8^# 6
M\#@81_=I#*2WG.V*WH7<V<\=#HR.:C#6<V[E\0^\[O,CT_)GR)H>1;"[&(A6
M"'UJ3;WO]/S'#$* ?,,Z0W=*-.V*/'QA_#-V_\2,.@MX7TUDIODPO&CG#LU#
M56'/VN59P+,6\OBSS4AKK:2^*)6>EKL?PJJ,()Y"KZY\D?G4 =D_1N6[7M=&
MW4Q\H+7Q!V;&[]KBE84D1P^4?HT0_QG%M"!;)=2*NYZA;[5;\ZFB=W6-M2K7
M3ITT*QQ"CARX,T%%5!E:\MSI5-(9#RU_T@\3D[<8*?*<R _<4D'7@"W29QWF
M!9L\#DXDOA],D+UQ2D&9RC/=C,EXV'$Y86P_#=)[!+16>Y)[3MQKN)5]_<:O
MH:@&Y.+/.#':ATT7RE]Y3NV9\THWISD3;+^4B[K'@F @ABDM8+82&1\-4/9B
MU_DCHE0[Y50>ZN'N #>.G.GMI?NFZ_9HMNATD2A;>UDV]'ITLK%NG8(&Q*G:
ML82P2=B"\="5R.<M2;BT4_UW9\04RDH1I9V";SX8]4R7O%HYHWYQ#\N6_K@&
MC"CMU:R68'?XM8SRT\65KBK?W-=JQ)^EYX/[1IWUBU&&E/+U@$.^5045VE!%
M:'RG;%SZ[7+?"T@;;[1F35T(=\9)MXSW4Y_]5T?39;HC-M>D9\&R]&-LG2>!
M)1'+X;E%DIW;MA$""\'Q:/&>2SV-]F;O\8$S]2[K5F?C0!C]K+J<=_63._NP
MD9<?(;J-B=<+AIC%BY%%[+:Z0(V-'>^NENLT=JMNJ_Z8Z+YT,TRT*J+\Y1(?
MX,6?^)0YB46PQX$S7;G.GS.TO,<54RS<,:(]W#DRW8E]EAAR3GOAI\N(AT(P
MU&K+-A5=L_<Y/8D%2$4ZDB=1:.$>0QLSES^3K//W+$7/N5]*T+7Z\\U@?71\
M=#]1*(O$UP$3H+E_2_)>OS]FG7^;S[W_F/X5BS"E(%$!KL=GCJH'F5S6S3?7
M5#D;,3!.)Y*=1+(KW<L1ON81T=:4<TC:Y5.P RYO%D 3@+*%WQESJI:"?]JJ
M5N7;T&R!R6V.*FVP?U^7?,[.6F%F=!*>SAR=$:1*?_:/<=V,;35 >;J_\9EQ
MJYU&MFCZ"CST@*KKJ61#ENDN@Q#*A,>J4^Q9J]ZZ])*JD9-?K]Y/[SZRT$9[
M.I>OXFRT(MN_'R#<+&[2ZS$P:C>@/\&)NXR;?54,?D2,1W]HB#D5<<[ZW@)A
M<VUMBGPB^U2A5JF]M;N:LE?!' OP@M'4<$FM<M3B+O;O2Z)A*N>F%4';?*[#
M4WG+:N/Q!T#6$!JJ<W9NIKV8T63*NXI6:)?R+A")C2B?=/N^DO&CKB"Y^96=
M?-*%$RE!N4?;?'?N=^F6:>(%KXGON5<2"3NF#H*Q!9U.+_-:=V R?\1NJ%XI
ML=\Z"ZHH4<[Z"[X&7T,>ZB[C>$S!>!3YZ.DIM(0O?T/#X@KD^??7^L]3EN0N
M*L\U*;W'@AG9N%E,>'%,N[H+K;#G(#>]PGE9\:;KI/>F)L:S)]KL<,ZN/NR!
M02;?_?$94Y.&]F8*HH$W[_BE-[U>ZC=ZE;(=G[\%706>&TQSW30Q+ZC82A-Y
M2K @SN,<RM4[(I2I$*<V<"<VM5TIN0<M0T=63.$Y77_X9.T+/B@4[9&O$#WG
M^3NT!^=P/YIKJO=0&$\JM%$G'"+FNG@O9\I 2KU+4_KV7GB=]7?=E^XB4FRP
M4*CX,F$%<9PRY\IXJQ#$O<=KUO+D_H-X[E^KR,K@W9KO4_@'%2:E%YX$] "?
MRC_+T!S2%#!'B3E$K+6S"T+6'N7EZ%].;**O-]?IY]QR')F-T;V('2-.RNVF
MTNS828ME*@S]BNCGLZ1ZQGYPF7;Q21;2T;M8CSC]D&L#D'CZ/"AC>@M:MT27
MN(O'3^V6D'$</F,8A?8FU8@V[=W34N^6<A]Y<+\Z?V7JHFD^]@G=CJ*$I*1.
M!^^%A#]*FU/LTDR!.7='Y"# ">^'%@J3D4_7)S&/()$5E:T.ME38=;0O.ADI
MTBI!L>RV\PXOCT-^#G&R]??T]0UX\" $UM<&"<0_"!K&:9@*A)YE*D;>H!3'
M9W Q<'9QX@**?M,&F<9"\)#9S4GI;N;I)@*I=J3NBLU:C++WT@L_Y;F7EWW7
ML9.63('52KHH+<-]3D><EF<S\N!^KGE<ETV2?4O^0_DOA^%>KP=[FF8IDR(B
MI1#+D^>^6[95I2I7WG6<G=:"+$8E^\^F<L[PD]VD;:>2).^.&7R:.ZPWHA\/
M/\$"7IC',SGQ3$BU>;3#H/;2U-8[/&ORWP!02P,$%     @ J9)E6A? ;MFW
M#@  C@\  !L   !D<V=X+3(P,C4P,3,Q>&5X.3ED,3 S,"YJ<&>=EGLXU%W7
MQW]C,)AAD'/,R"B$1 YA&))3=S5)I9-&)*=P"QD,,\Z10Z*3NBER2DQDAG"/
M\^@@0B'3-(9(CC.)?G>,>75?S_L^[Q_/]5[O\WSW7G^MM?>U/GM=>^\E'!6.
M [('G%R= (@( $ V!R!D 0X 5$3DU]R4Z.84DQ 3$Q45DX+!Q"404@@$7 H.
MEY:1EY66D9.!PV659.6V*"@J*B*0RBI*"BKR"HH*OS:!0#?7B(I)BHE)*DC#
MI17^;0G; #D)8!_0!H5H 2)R$*@<1-@%H#?S%(/\+> ?@HALYB@.DY"4@F\&
MT&0!$0@4*B(*_97UIC=NTP^(RHG);S.V%]_B=AZF%:9@DI#[4 *SK[9=\>@
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
M146J5"4)J" UH80M27:^[3GON?<^7WEN^?7=1>:?E9UDS;'6'&/,]< ;X=$
MR<,V]C8 @@\ $/ ?P!L'K  D']_O%SSXX9> D(  /[^ " HE*"0F(B8F*B(J
M*BXA+2DN(24A*BHI+RDE(RLG)R>&5E"4EU64EI63_?TE""3\&7X!80$!85EQ
M47'9_^O!>PM("0%7^2R0B&T GQ0"*87@M0$8>)T"B+\&\*^!X(/7*(@2$A81
MA1^HD@3X$$@D'S_R]ZKA=Z/@]P%^*0'IK7H'!&4</5';@F3WQF3>%U([6-XL
MY]3'V*[O=>6&L(B\@J*2\HZ=ZAJ:6@:&1L8F^_9;';*VL;6S/WS\A/-)%]=3
M;M[GSE_P\?6[>#7X6DAH6/CUV)NWXN(3$I.RLF_GY.;=R2]X4/+PT>/2)T^?
MO:ZHK*JNJ7U3U]+:UM[1^:[K??_ X.>AX9'1,?KDU+?O/Z9G?LXREU=6UUCK
MX*^-WWDA "3BG_&?YB4%Y\7'SX_D1_W."\$7^OL!*7Z!K7J"T@<<49Y!,MOV
MQ@C)'LR\7]XLK*;OQ)#SNM(G(K_=@+Z#^3NUOS+[/TOLQO]39O\CL?^9UQ@@
MAD3 FX>4 K  ]_B#) W@OUUD%+HDA+%90^!N!J4]#U)B8M/F#>Y=:;_QY=3'
MEVY[3^A^4E 1,D LRKIT\P &$S]*A9(NY/& R"X>T#8X1&0<(XTN0W3/Y,D+
MV8VUFVJ><-[WHOI.N&C3TI.*),'L %:Z*)C]Q_ #9!!;_+V=Y3KPS>5X >"F
M\2!:1(.L#M:P3W!V@0IDMYFF?<QKI/@UT[M!U^0:WWIU2UTX]@79X1Q/MU0M
MMXZD\@"T'/<>#YAY[$=<_TCB','\^]7THOIE73X=(S9;47SJ\Z?B=!+=O+O4
M^)U%U;<7(M;]9Y+]$Q9I:;YWS)PT@CV_2&7X\OVU"DWA]O# ]O0Q(IW8S'>\
MPT-OH#(Y0Y]EDQT)4;=]@VXC9H-=.K.(S:Y$'[O%/[",[(M'8E/G'AX]OC+N
M<9_1PQH'M9D7%[5QZ+"5(UDLJYM5]5<#U3"6&"48M>#CSJW1!_BE,@Z\*SV&
ML):%8ZL)>3OX@NW*40<UEA22&_P?_QSV&^K>ON*S<>ET!J$2,7?;I7T=RW!!
MC\Z*EDC/*7]\)V$VV']^G%/AD<>@LCB@'//H#^TSF,Z0D/6L#'FJT\FJ*[C
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
M]RHWPMR[=2/EW:.;PJ8E^U1BM%.&1[$,6SW2J#3, ,=W+$')-YJ^FVL@?]7
M'*8]B9L/9\;97]I9S^ !"<'^)0)0SF6[I+/H;MFG?;?3>,!!4Y=5.<:F2=9=
MYCA=)XX3](B<(UAV\7478I^N0[\=;,G.QV!R"'MX0+/KIR+BI<:(>5,S>NFI
MJ H?O.F'I:6*#USM56U(6$EEEM E?V$N-&/L7E=-SY%\I<ZI H#M 6.!_H =
M2X>$?9B;I@([>Q1!JMUPI<,9XU,-[$.Z7^H390,</PGJMX?C.?M")SNY8A,J
M/("2160:LF%G$(W-QZ9A46O8:!X@:TA!^AL;K5_/S=[6:3#T\,Y(CGC'Y>O*
M&SZTZ7\$PP/#K/Y;,"I@P?#Z2S#44*)IGUO@!.QKN946:L3AC_B-'=HL=4B8
M"XM$$*,&:H:5Q\8<( 3Q@-:\IEWH7_D-^W@ <3LLX_YKZBQ7\/C32$D014?S
M7UR7/'-QOSDYTV"H[<[(HGK*RD2CN]*COS0.?8M"*[?"O [&LE2J(!S^-NDU
M#YAOGL2,E78,-RDQOJ[EW/K^XGZ]GTZBT E=1454D?]:("2J "_B'IH;'T#,
M'GZ'9]CH_#+ID2*.P!*VZM7+3V5\IR9C5O7#KD(0?"#;^OZB[I=H3LK$YG]P
M.F -A(7.GV&8NG(+>8 /&0W*G*FK;AQ<_?6GA_WS+KU76:$9WFKFBBZU?=:
M7 _( SKJ EO3^?V;-(=V+ <WJGYR'X]3"7F0^W;=Y.WZMCH1!G:<T@K3"^5<
M8&+U_M.!AE26PX?O'7L_)5C5(KF?U1G%Z#;,&(:5RIQ>N,JT)Z\I_3F=-CLU
MOV$3<^ECWWB9D;3!@?7";^?+L_QG\/&_E9J4#.WNVS)HF(JS8314;+E6T1":
MY=QS04@7/87?2WA/DEXEQE(K7:(;SI/'[][;9#>8&Y$C6OL@Y_P*L'CL5=#B
M TH)5B!L_ "83*_7D0P+/%$]%!PQTO;JS%AM\%EB)LLL"> < 6&SQW\;'*>=
MV1^Q8+3;N#VC352QLNO=G9B9%$%"SBR)88^Y292Y!.F&Q9Z@- V;Z=//"!RI
M+GG8TZ2QM.=.9+G!D<[W%EY!F1UHPXVUI(N',O.TDAY]^K'%.ZAC;U08<KD8
MK<-$-RNNL8D)DDV/'2-/A?L$OVU!9W[;KEVC]*LFW&+DJRM6G =<\"?&-^VO
M9DH.7QATZUOTK(QSM62;WXWY[J[9\S5E:;J)/B"WJ-BM"'N\?[5PY.D>2,09
MUO)'S$U0TU98?Z6&5Y7P/22.;!F$^U_<$7J$!*JO<_)K6BAL >*""[EX;KKG
MW\W, .0N'+B[,RY@-P?'H'H<<FYX4_6F,C/Z>X[2J:L\(*J >[&;H$UL]H)V
MC8$?ICZETTV5<GTC]3U?TYZ^DWD?JKMQ2]12M1-&\\#0=)X-2'I8(1,@RPK5
M0EM^?*W9R5W67E.E[,/2DK'H10/<30M=IG.;M8S;8-:F$+5-67);,GD G_<O
MEYFO@!Q(@3FO#.:\5$8Z-UF/!_S\8XU] )\,'PHWRB\3JA /&*G 0+=[+%75
MV2;$9LNF;=!'#[Z[+02YJO[' ^<;(OJ'7RE$S3]#;TG3?=!X',)@F&0HTLR<
M!T2_X 'M+O5P8>^F7,#&8>%"\G'X&MBABAY8^^IH6)]\[4W=05<;M91;<[W2
MQ/UL&4C1E&;,E3F#@;@D9C%:$N;NRX2QIGW<LH8#4YMT%,9_OK)^Z&YE@/%,
MN+_C2VQA]D]\B,L]SAXNJ0D3*?^FJ9;A<FN^ 6NX_.RT^8.,<\[[@.$'?S6$
MJ%RHCUI!C:/X!<;E06CF=FLGQQ]N$QVHNWZZF%W)7-L@_"U\)77^%!/#.L7D
MCSTU\'TPT@+N$JR8$D4I0\MBG/J$'\8L;(PA5^:SN8O]ZV&#7_/7-MD%/B]U
MRAK_8J-J?'SD*:T71<^;[X'A/ C>9>CM-DB7/#RQC]%F>LS]HC2ILB6V\LIR
MF KR L6->*%G7)3>LV!5$E724O D_F2B\>F9O#;;4%33%\X'J/];E/8T9LP;
M$MY!PR4&X?VQ$M,6(DPI\6VC,4TM(7,W&KU[GA5&*'/R/AM0-T,?2?+?JNZ]
MC#2<PJ"_<,'",FV)FU+K.?&T \7HGP5)3-*HZ%0ZQP#[%BT:]NG\H<$_/77Q
M'??D)_6KF/-V/5,>W98"!$=B<Z!A/@^HA)3\W!.J]<Z<7EBHUZ*\I[CXK\A
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
M6YH4!R(5Z-W&!_L6G'H<!E[TCXT)=?!M2T&X50(NV81!$M\EHB_UAL4.AO7
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
M^18X0).1F\EL+]KM;QO/5\U.<*]0'PMO;N[96-E\A#%M_O'GV(_.TBKC@8:
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
MP=18)S0DE+PA?G]G>X1EJB 7OGW&5KZN%SE1(/<;[%:UZ)GO1\UK&$C6$&^
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
MQJ952G'.?A'+1W3G$#^5^._J,OV:5H*FVIP<RAMKN)F/D+&&8. =JPCA2OL
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
MPM085> IUOT)C]D2"7[<C>!SSV+DHFDY!LN&"1,?[9/QB%/H18-#(0\#!ZX
MA4%_P%I%.DS*D&VT H;P:G52-[#"C9_T89YXK.-@)"1LJE0QK<@IKQ =SO,W
MEN6S^3U>.N;2)6ZA6.2K",1YP0F0?C-:GD@ZK$K&JG5@#<ZS/\TEB[$#/W\#
M&OC\8A[/CNB/V/*SV"CBY/5[KG-'$U@D5\4C3&H91F.XRG(/5>8C=_'+W*;,
M;<K<ILQMRMQFGG.;ILQMRMRFS&W*W&;^<YMH^H]'-B\-YNZ@2$[Q$ XOY5WM
M+G&_H(^Q>G[E]"!Q$1E+ES4&<U<DM:RST4++"<#!AS>(EH]>[-%-G+_)NW$S
M&<^W*A@.XAY,:@=O[PGKHS/<-Y)92?L-ADDQL#2)GUZ!KKUHM[^13Q/W_"MX
M6CPT5EDH:5U6YLK#/>!JXZ+%6"8\- E1'^) AI,/OZ$3C0&^2:Z.NX[QGBMP
MR\<>WY*&V2V,('D>)DR2CZ9ABA32XN?QP!)&BP-[FCQ"ZG'_EKJA.#/!17>=
MAR;C Q22[*27$'OZDI0[C0<9\&0$H).Z8UYKC#',::Y$$8$M)YT*2@KBDWDF
M"<YX?\[<_N>X#EILB!/!8G\2@IF$'IZ;98^YF*N9B1>+^ L>))&DRU/U\?%(
MPF1A)H<,8#!Y"4&&,?JFI?-;@E 15?[Q=@<<#)\WV)JQH!'QD_30>(:6CR.I
M09^$IJ:I-?50>Y[RN#,,72M87,-DR\(<?^*"=!37<2J!+K)<0.H!,R%]3!P!
M3R?@%F<?3-/\ [[_,LE_3C(?2<>S,$[&(KZF]??3M!INJN2B/:YCX8U\XQ2[
M(II-*I@D")CEQ&N3#GWP#/X7_P6(MGY41,D-H@:>*T3J6PQ^B6<_L"3K&.]]
M >'"XK?S5[Q++>-D1JON#Z-@;$4"D/&U2CK07TE>D4Q2239@+NT&AT_&M0LR
M:AQGKKE7Q\/T0G5B%48J3;N0;7RG;K(*"2^X8(NKF6_9B8]$1LV)L<AIBC..
M@8(LP@(07V3BXHOC]%$@TJEX&0;JG4D*8CH0N5132_7KTN7"ZQI6+!>QED!(
MXL4BL6+!97.;4T3"+MGC-+<12'!U%J&3-#Q7>\#Z= K3GTB%=%:@S;42/-]]
M4N(QSSP-C#%<+[9 ZQS4E.FZXG*(*T6<&ZS Z=O2PCY),0&88*D[21=P, 6<
M<)J#35W.7RO@"1Y:1?RFIG(OB?J,1==4.<[NEJ(\&0,J.3VL:?5%G-VB0R;&
MI23;Q*<)A*34;V&YI:0N5E]Q61QR&9C8%K'UD22&4G5$E P B[AQ'G.N8AL5
M)I2IR(R"!/7)P'_ D<S0\\&;#%XEG_T'N#M0MM7K,7Q6&A!QG=4D0R$8Q^/J
MF$UV8)%1M 9%:G!Z&YAZ(.D%(F/9'%<'A$LDWH9C#@<\1349DH=RG<48"\>]
M$$8SCE,HV.H8Q+0_9*+L8>AXJVVS:?'&A"23&4VJA."5R5J;F]G4VA*3X)5.
MXM2)_M:3MGWXP4\PX 4WJ12?.&E!G&B1G'*0'-: Y8SP@-G*&@"1Q>+-9ZE^
M)7TPM('U>E6O3=@^.?0A57@XM\LPE?B*C0],;\>I:\=[5K_&OL42O0PH203J
MZQXPV;'+RTDIGJB%F;1PS)(Z-AYVI#,)?CP29,A2$B5^"!?P\7"2YR>%%W&-
M$4_7HSD@=@@&T=Q.3OAWP)]!4YMH.;T2";YX4PF/7Y,Y0YDSE#E#F3.4.4.9
M,RQASK N<X8R9RASAC)GN,>3OS>-,(N=10P,&?18>"IK24AQ4_\T\M.^]L3_
MC_,526+HX\3M@C^FASWADZY3$2#PPS_]H9M\$/!++15U2E(G\4F4O$K7=F B
MD?N4#D^DO?><^U$Y=#RR]3)FFQ$V5-T\H#&^3+Y,[/+MA?HZML+&'NTZ[L[+
MG>=J34GVO9.]J6J2ZA+LQT%V"?9#4%U330GV5Y-]TU[*+YDO^VJ<_.J&/V^_
M=XF-!J4H)X+QN;P4(;,.M\^+WEVXJ%LVN%W\F5G+6^WE/N6':6Z;+1W16\LQ
M?E[M,*_&Q[J!S+)!9 /BH>>>':%>TG('GNP*7+Q.N^R\/_A>%<[5)"[$1<0&
M1%5$27@<2_*]]>)'V6%.R*(C[=:N/=>LO=RMV+6:H1J9ZK,]8VA[P74DP%F;
M4"NAHIEJ*VLMEU>TK.MC%=FOVF#IB/Q(:A]5G$W!/^9R)Z=9*Z4CT4![S>QG
MXD:6UPW*6$<<K&AC Y\OW^Y+;J5X[OR71.7C_MH-X7"9G!H:5^U*[V*'1F)I
M' BU*MV'<B!C>P]!S3P*EE<XE-T_V$J-3'9-)[$PZ1#DW6K,6"N\U6#YYCG/
MEB\MD$\'825S6VKCG?07I+\@*F C^B@]!NDQK*T;:DV9<2@+-+;6)8:IZM)G
M.'J?X3QU>,ZNE,F1:(ZRJ E3K4O_(>\\WUK^F^KBX;/2DS@V3Z*=.BTM/EQM
MIE](2*1G44;S,6.546]A %IZ%F6 QM::I5[-7K7D%0_2LUBY4+JKCMZ,#_OE
M];7\?$WI;Q3+]LQ8>>B:JDF'(^],WUHM: UDL_0XCMSCN$X?HRR=B]U7PZ_<
M\546_=%0L]T7F%=;<^_[*/*'G*V5$-@:B^>G2=\DU[Z)>#]N=7#Z3SO<0SBW
MG:(P)FF>M% N-QGOVY]IUM1&8=!S</532,ALKXAJ#9F R:L[],J9+TB(34A1
M4J/U,#3)P0;A0M$KWQB2D#D\>:2K<^A-XZ\V\V_FNSSFW23-D4-3%I^D;F:]
M73 7ZUXF6>:KNAIZ]D>%Y(+5)7 K#AW@FAZ2A6=>O5G: ;B =F2.U$6>ZGBR
MCFKI1XF1-SL[LC-'4-D^FE4]%D\#$%$HC^) R9/=*IA<2HJ=9U.P&5=>XM]9
M[TS,MGHXE_C8G2;)+TRV5BPUHY3.S$HMLLLN;@7KQWK 5E)C;_-F4K_6\(!R
MA?QJQ/_J\;^:^!='R*\I>:<IV1\W&;KLCRO[X\K^N+(_KNR/FZF-.8_TV15Q
M\J$A^^/*_KBR/VXR"MD?-T_]<==OUYH8ELB;D^R,X@T;LV[;B=4TU9KLQ'J(
M?GU-2?;]D[VN&H=TX(Z5[+IJ-"39#X%V*60DVH^$[!+M$NW'0W:)=HGVXR&[
M1/N!O-1:39)]3UWE7PS%'+ V9L?]XE^*AN2JS_F.^\6+$$4^=UUG2TA1D9%9
M8=GSBKED+>.%0BP02C:@GJC0R7+SK(1&6:"A2VA(:"R'AB:A(:&Q'!J\K#/+
M0N7GW:(#3W<%-%[GCA1E']AT[R0W*#<@EX*%R),*8]];KZ8X2S0U"T3G7?@Z
M!SW4XW";:HQ&AH?RH[+*[YZ\'6FKH@!G;4JMA$H]RV,Q)5I*CA9^OJ%$BT2+
M1(M$2\9H 7,U:T\JKVC9X9$V>TCV;+ HQ,Y,X>5$_G0?)_XQMVOS-&O'YUB\
MG+WNO\DDN57>S$S6XO]@>ZLV"!N6.C(J&2H9*ADJ&5I6ANXBXY!;HWB/[L 6
M?;(N,4G#PBC[INPR(9"CH_<RCOE7U>R.:92!EH*?RLC!( -O$@\2#Q(/2_&0
MX>EZ$@\2#S+TOOO0^U8NQ3T38?A)*9.,M9<UUKYJD;_5U%96^VID'.A <:"5
MS-4Y<V6<K[S\;4C^EIB_-563_"TQ?PVUEB%_9=@^AS8V/U$\HH\R<"\#]^N;
MY9HFB_5E)":%A@R[^$E %!\0AMR@(0$Q*R$RWXPL 5%@0#1E\+[4P?MS!MRV
M'+X[>%>NQ;'X$:5Q&M02'V]4V$A1]KI>S?!P"<EIR6G):<EIR>DB<EI&_'-G
MF+>'/LSD?\(P]_O$\2+JW3G8KH>&(8M"(C, ,@.PAC'?DAD &<Z9H*$AXWL2
M$+. R-QBE( H,B!,M2H!(0&1!H0F4P E3@%T(]_Z4>G1D-G$\H>8 A!>!_5L
MPGM<P!<1?629GQYZ+.Y%67P),V-7(A=K7H:6%MF<>5&(Y'1..9WAJ7B2TSGF
M="W[3;F2TSGE=(;GHLK$0.[,]>MHP )B#>!9V5OD,@>PY##<E7U%RF+7:VCP
MR11!EO&>W$)G^WA0]C:CQ$N)\2*/!Y)XV00OAMRC)/&R 5XRS6C+],1^_)U7
M&_YSY_KGN)-SCCV=65F@FL"7/#1,W+/7T^"9;IG.>%6/S<* 9GO]HF>9_SX^
MI.2D&^ON<5*5:3.)DY=Q4F]D7V E<5)"G)@RD9/_1,Y&,U\P33<A1;$R.SFG
MR5HMG)?8N$=,LGR'TO:%FI>[9N85-1(D.0+)CNV4/--'0D1"1$)$0D0F:O*8
MJ-DJ5W'#[IDWQJHTF94YVDTB6KTASX\ZAD)CK=Z4VP>.AM>&/%GH6'AM:G*S
MR+'PNM;,LCQ39AER:*M>L:0Q&Z$A>8.'206[,-2+0@]Y?M0FYKQ>Z,[/KP;)
M&X&2K+%2ML-!]".J[9^#Q,XC?05&1>8%<Q(5)4#%$;6%EJ@XA*S(=U( 4%'F
MX/_<SHS=^AJYI,!!MFJ4Q<^H%2=GD$>G(K\XV5I#U,H:C-RMD2 1(1%Q/(@H
M:W)*(B('B,A16B,[)V*?7B1Z!D[_J5@%[S*K<>!"]V?$10:DRI1@>8]'[?N<
MD5P 9&/Z9$TEB0J)"HD*B0J)"HF*,F8T-JZQ>A_1GLO@7]NYSWJD:PXFVY=.
M+ZQO0 \^>_@Q(;++:(!8&,2O2EQR U\9(Z%:?8-OY_=R,B9WQPL&..724<A.
MDU_2L\#1#801/*2/<*T7,2^96,5E_>B4CB,_^8"O!?%)C"YQ30IN\35\$>%H
M*BY]\L?1:=]Y9/;,F F'.LP2WLB"$W15DZ''0Q(K:/4J 5D0/[%94VO/[I5(
M437U<!\>V'?]AX0MR=\\6G#:"QC]47D ,IZ-_-#!WB>GO.^)<\_FGCGYGO9
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
M'@+?&><GB[O^9-@[BXV#]2,+>Z?/VR/?VG^T?_F2N>268OJX#&=3,65GQQ+
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
M[H?_!U!+ 0(4 Q0    ( *F295I1V&B#X1H  *L[ 0 1              "
M 0    !D<V=X+3(P,C4P,3,Q+GAS9%!+ 0(4 Q0    ( *F295IF<Y;^PQ4
M /9$ 0 5              "  1 ;  !D<V=X+3(P,C4P,3,Q7V-A;"YX;6Q0
M2P$"% ,4    " "IDF5:5-NK %L^   /=@0 %0              @ $&,0
M9'-G>"TR,#(U,#$S,5]D968N>&UL4$L! A0#%     @ J9)E6O-C44R-H@
M2+ * !4              ( !E&\  &1S9W@M,C R-3 Q,S%?;&%B+GAM;%!+
M 0(4 Q0    ( *F295H%;@Q58G(  -W>"  5              "  502 0!D
M<V=X+3(P,C4P,3,Q7W!R92YX;6Q02P$"% ,4    " "IDF5:O=+E#TT]  "2
M! , %               @ 'IA $ 9'-G>"TR,#(U,#$S,7@V:RYH=&U02P$"
M% ,4    " "IDF5:XQPXA=W$ P!7TRL &               @ %HP@$ 9'-G
M>"TR,#(U,#$S,7AE>#DY9#$N:'1M4$L! A0#%     @ J9)E6HR\G$TW*
M"RX  !L              ( !>X<% &1S9W@M,C R-3 Q,S%X97@Y.60Q,# Q
M+FIP9U!+ 0(4 Q0    ( *F295K!UHS>[8<  *.-   ;              "
M >NO!0!D<V=X+3(P,C4P,3,Q>&5X.3ED,3 P,BYJ<&=02P$"% ,4    " "I
MDF5:4_M-$'P5  !^%@  &P              @ $1. 8 9'-G>"TR,#(U,#$S
M,7AE>#DY9#$P,CDN:G!G4$L! A0#%     @ J9)E6A? ;MFW#@  C@\  !L
M             ( !QDT& &1S9W@M,C R-3 Q,S%X97@Y.60Q,#,P+FIP9U!+
M 0(4 Q0    ( *F295HT[[AO(2$  /,D   ;              "  ;9<!@!D
M<V=X+3(P,C4P,3,Q>&5X.3ED,3 S,RYJ<&=02P$"% ,4    " "IDF5:8^Y#
M4<I0   \ZP4 &               @ $0?@8 9'-G>"TR,#(U,#$S,7AE>#DY
<9#(N:'1M4$L%!@     -  T A@,  !#/!@    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>132
<FILENAME>dsgx-20250131x6k_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2023"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:dsgx="http://www.descartes.com/20250131"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2023"
  xmlns:us-gaap="http://fasb.org/us-gaap/2023"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="dsgx-20250131.xsd" xlink:type="simple"/>
    <context id="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uUzTcmdSIkSTNn7W5gkVVA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_quv2HM7Wnk-vrR8nBH9zyA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FqO6D9icB0-m9TaBJJLk6Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Xo5nsPjbxEarpd47qSr5eg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_deaPScdFcEq6NKWslvdpzQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_WJ7hDHiTiEGhyylWCtoSgA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ZZoJDsZMCkughNkJdOYgQw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hfxuVkTEO0CpSC-CLc9ocg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ONNSmfAFLU2r9QyLtDKQdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_sfuZ6nhlmUeDaCYsqZmXOA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3Ng61soA6EiEjE14GfjGdQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_2yDO-83P6UGboHA1yVxB9g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_LPYOpY2mD0KueCOKxSreig">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jJZe_wORSkuhP9G8pScoKw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_jVXJQtjgTkyBxSFQOXTt0w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XMziVGkzgkG6rAiDzbV1mg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_pdvd9opf0EmTA4vY3rwJwA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_p-0qPeTS6UKlrC3J9r9OXw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_eqyDr6O210uUltvKo6nSwA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_AkJWHYCt-UyY9UTyv4-EIw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember__hYjTdk5LU2ktRZvFML-yQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_lXDJIomuPEOC3V0RhuAS9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0etVXC59d0yJEabB2TBpIA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Hf31aahcWEOKuTWcdroOmA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Am5CE2jzw0m9ZRTQ1EbpqA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20250131_eO2sMHH-bE2AK25_xCq_Bg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-31</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_ServiceMember_TQjDDrEHpES7HgWwuIv6fg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_LicenseMember_pl2slgTqPEScSNB3qniZ0A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_29vGExNb-0Gh_6J9FwEffA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_cXgD9j1dYkCWJaVliFBFvg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6vyhTEO2dEuYoOglC9AKmA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_US_nxGVLzjITEuUmjVwxFftrw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_CA_-vHgzPWnkk-KRqWMeD-Bxg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_ServiceMember_PPFpMMaUVUOeYascn3YgvQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_LicenseMember_CdETb7LgaU6RNK3pdOKNlA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_8JOnCORSmkWFWsneZm90gQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PpH20IfC6UaKAtZfvmsVEg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_nkQ8q5WqQ0OUccEnkkdAaQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_US_H0t6W-dJt0Gkyzt7yhaFyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_CA_4f0jfXCPPkmLxV9dPq_UEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_ServiceMember_W6-OgRB8eUyg3o2ollLxKQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_LicenseMember_4vkmpzQ0IE2cNYszp9t6pg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_us-gaap_EMEAMember_fCee2E7iGEGcN50kEsY-aw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_srt_AsiaPacificMember_ZSDkfy0DGkK4vooiBjK3bA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_kRe4BfuYO0GeGsb9iXraNA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_US_GvGGbDDi8kqORlR0hgi5-w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_CA_S4wbI54qV0Ks31bg1nfgYw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_JtoQqghEdUOfZGuRuBrLAA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_I7EM2AKm_U-5rl0tPVWxow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7kb5wGJr-U2vLu3NNbphCg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_8ySeS4DWS0qjpKMDGIQ7TQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_16NvNRUppkGMDdkLb8VATA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_AIPkZ424DU6umDEWWArldg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7gQhquhRE0-RMmApKKBsRQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7bYn20uP7U2met2vX_szEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_GFgmd6xaLkqwQ7AC8qXndg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_VNE4i8i7ukuSJliA6WaUbg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_atjDyHjMlU-gOd3hUW_VpA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_Alknur5FEUiHFDnMNDMxaA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_qyasNacZ8UWxXVwLFrq5pw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_jqKw8kSw806UqTe-2_GuVw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_6_10_2024_To_6_10_2024_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_NmAG3hWJgEeJ0pSB-Rl8Ug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-06-10</startDate>
            <endDate>2024-06-10</endDate>
        </period>
    </context>
    <context id="Duration_3_28_2024_To_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_qO0C59RyfUGntyxTK08Arw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-03-28</startDate>
            <endDate>2024-03-28</endDate>
        </period>
    </context>
    <context id="Duration_4_20_2023_To_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_o7F5xmIUe0ePgrT_fYZavg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-20</startDate>
            <endDate>2023-04-20</endDate>
        </period>
    </context>
    <context id="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_gR--3dPXjUqawPWHxblafw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-21</startDate>
            <endDate>2022-04-21</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_jsfYlX7eF0GpmFoQQelk0Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:FacilityClosingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_wmj07YaPfEmX4sPnv_udag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2025RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2024RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-19</startDate>
            <endDate>2024-04-19</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_qpSR7Sw6OUOd5UbcZ5Quhg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tsD-66TsZ0iu5mcDjH7frQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_7punDIlfu02bV8Ry--oT0A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_l745JJ4S3Eu-LLoh2TtJXw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:IndefiniteYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member__5l7fqnKr06DiZap5gGcig">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2030Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_7AMjFWKDF0KMgk17-A0t2w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2029Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_0Df-t5-gekqr2k71X68bpg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2028Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_UNlyxZM3hk6ZRUuIXDvwvA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2027Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_3j4e5-jopUCuwOT7r9w5xQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_0irSxaP4W0SIphSD7wckcg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_P_VnrN2A-EmTzT6Tr3ThKA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2030Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_9pnCE8-9X0uPmySAJcQiNQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2029Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_1xVhbZdd-EuD2JQisUWomQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2028Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_WSVHR6MASU2bPA41CrYHCA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:IndefiniteYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_mFekHua1bkKwcC7YUJkJuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_zaSzvHyXY0WrY-J15_xwuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_1gxzHRDtdU6rNmfJ39KoFw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_ik1qFM2Dl0-3WPTCDAQ6mA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_6rjg4_8y80q_DLW7EVJv_g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2030Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_MK1pRYY_5keAuo7akd8z9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2029Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_tBzmlWb46kiWfyP_tsdHjg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2028Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_sr0Fc9u8EU24M6v4sHahyw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2027Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_cF3lCKZeh0uLtkgqRwexGA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_vR-PnRx9tUuPeLesgK-KnQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:IndefiniteYearMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_AGeTVpKfGE2AQyrdfYv87Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_roul4JoGLUaLPxzX8GLlKg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_bQtUUlolAU-5Xau3H5f0rg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_US_lwCTJQu9yECv4HwkdAswOw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_CA_BRScwaLfe0iYy_ZIBdthfw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_-wEBXuXve0aCbivTb5ScQA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_RJd80nMB2EemQBVx2w-bdQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_US_CGnWX7zQzkCUwngHM5p4HQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_CA_ILjGiaSF3kCi_5BYAjhR-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_-Lmbiku6u0GkDADSUfLlPg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_eFr7WsFJQEOi_8z-9mvrFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_4daqMAqhVUqvg0wDpZoNYw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_04BD1YAFmEeWdI8JxjptTw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_tC7kCZf7I06n773bWStW2A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_q9BnnaeJ3keyafk0FLQcFw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_WL7pLbCDN0Ckb1zgzZgT2g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_RuVFsfy9rUWbrdsCqHsnVQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tZaBkCg-_E2nfi42hj9Mmw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_fyWpwPAk-EmoyxE6tbBLlQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Pb0Gt03z7k2QcrZNIpMFFw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_GlCnS2eQ70-THFgNQtM-2g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sHvFJqqXPkW4qWunmHxh-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uGIbCZBY1UqAq72UYM0Gew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember__dH2z9o4o0qjaumuWtExHg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NDBGoKmY2kKbkiGg_0vp7w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LcnFxLiVzUq0H6h9uAQ2YA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QZK_mOfVYkOCMsFFa28N8w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_f5tfJp8bwUmRi7WcQjlDCw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_dp8aGXVQEEKS4bMfY0OyLQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_BeVghKtBX0eDM6R0nh-L9w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_cbdskV2m4UOhjP9Aq_0ovw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_jKEXqqdgBE6xB_nreRZepw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_E1w6yWf9N0Ovb3NRfl-jxg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_WMaY6KjdWE-84se4ZjMerQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_48w17frq4EqulxAc4SrpFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_pOL8xJrfKk674SqBN-Lbyw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_-ZGdd0zQYk-OMCj5VH7s_Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_-KLFiDtj70OXO11uoPl3PQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_9NHSdIjPZ0aePdeZGMz4og">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_wrBQNVVzqEKlcU269TIqJQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_V3Aj27J_PkmCeX-LFcezAg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_TmoItXZpVkm1U7gesmtM-A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_4Zxf9mU-iUaqJqOl_UCYDw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NCNRFy-nNEip4dbUH0Qbyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_g4CApCNFVE6TfIIl8jGYFA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_VWsK_JPkokicMxUL9BIFqw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_FX1znndwu0eKx-NYNlEz9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_WiXfedSYykGt5cV4iApCxA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SsZT58bRBk6BzNnQmkJmyA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IzQBwPmnHU6N_p_6XWnt-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_oRagQpsYDkOTg7Mf_HaBUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LL6k8xs0iUOY5Myd1LnLHw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_eFKjrCbcpkaWku185-sRjA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_fqKkKZezdUqFRmpGKzzAcw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XAgRkcyW0ku4ndq0OvJQRQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_BFhMvP_QH0ittuKAN28dFA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_5MSFaGBI9UGu5fXTYBD4nA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_1ur_H23L706TLsvzHVdEsg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UFano2ye40CbdnSgLQufyA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_MSEXOfvBHEO1MbnoTetL_g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0Kq6hqNILUmlfqshIwUHMQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_aRdPuNoY_06Z6fS24w-e4A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_OrOo0RIN7kauNnvO1P4SOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_MdF6hTdL3EecK7y62_QGfw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WxgGCSJgX0aN52PyEaAtWw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NjsJk_WEiUqEBzTApzglAg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_22pwhlNQFU660crmwXHk8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_FlB4_ErBXUKA1rZyTh8w6A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_xyzUOHeSHUyQtEli-A8I0Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fAekMMIVdkax2baAgeBTsw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_QnoBJTXEjUiI-WvDuNK09Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_jL5OdN2Qx0uhN7dNTDwzTw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_pC2FGINSs0CdHx3zVD1aAA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JtJwhrRn5kGCxdbhc5gP-A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Y4Vr9kb6hkOULI_kBiL4hw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_RllDwoMvQE6PCVKNw1VOqw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_63poA6l9G0ad9z4BCgD5HQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8ocP7kndg0u3Aie1GIadaA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_H_wy3UKvwUOrW3JWXZwJ8g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kGPsY3Cz706PbJT6vHzIMw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_3HI2fdXurUCIMe3KRuO2Zw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_KSsS8j-Tyk-gl6vx67nrzw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_jPSgcZEsR0OUVtGerst6xQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ulAK44TzGEuOX1UW0y7_wA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_djdDJIBL50umyaxlozC1Uw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kCn4xihjHkq1EEzRRRPyJA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_BiCxeZxsFkWsGJKDAtmIaw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_nodCvkIGeUeVfZ8ms5nNjg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember__72voAu_lEWs-vxpkQPcoA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lFeO-F4w00-Q6vKuPPDNdA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_9HVQwmHyT0iyzVKlE7mFlA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CU2Xwf7ShkKAK-OfRB6-cA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_wuvKoabWc0yCW4EQJ6bLvg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionGroundcloudMcpAndSellercloudMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">dsgx:BusinessCombinationAgreementsPerformanceBasedConsiderationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_Ik-ljJBmHEWPxs--p8xxBw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-17</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Fiscal2025AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-10-11</instant>
        </period>
    </context>
    <context id="As_Of_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_NwssJ3aKYU64tE1PhpR_FA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-04-19</instant>
        </period>
    </context>
    <context id="As_Of_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_7JM72RJ0g0-3O0q3iKl4Vg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-20</instant>
        </period>
    </context>
    <context id="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-02-14</instant>
        </period>
    </context>
    <context id="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-05</instant>
        </period>
    </context>
    <context id="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-03</instant>
        </period>
    </context>
    <context id="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_mUyA6OhXH0izkqzqdHOlfw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-04-21</instant>
        </period>
    </context>
    <context id="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-09</instant>
        </period>
    </context>
    <context id="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-28</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_XlMeR2DDHU-DnDfvB6AZqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Lnj0zT4JWEy8CcnqFviQ5A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember__Wef7ZpiVEi7vc2dWtroQw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_x0JjZP9AUU6zOUBEXUdXlw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_UDQyiLl3d06ArwTWo4GMEQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_Utlj73tVJ0yplHkFoxjA3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_zmfpheEgwkuoppa1mziUzQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_mkdJJESXj0eX3bKjFFxG5Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_79uZOvhDnU-FGNnUvBr_PQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_4k1yOiu2Lk6QjVmPLanZUg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_dReCUT9GAUuaHpWiNoyI0g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_6LDD9oq9OUuESvdtMiZz0w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_MocVBqOuhEKNgD_BdDwPag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember__xmXzVVI1EmTxS0AS_jJOg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_0od1S6PnM0mj7T8qaoVr1A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_lxKsFqqyMEqPn7bdKxggpQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_IWngTEjIE0294u68Ko6Kiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_SxrvPTnIFkuuTD54OzmjKQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_mrABNMA4gk2eTijk8iNOdw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_19_KbqfP4U6aO7yGSqOyLQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nEtpcKGo3kKmavV9ctha6g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_0zoYH0kUQk2deGemzPoQwA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_uDviOrJ_yE-9Kusbtl-yCg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_FfPxRGaV8EC0xNasXANn7g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_NP6RexODBUedcTTIbJ6Qlg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_22PpKr8xZEO7YA5NLeoKyw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_Go4nTqHXPUKw4j9ZmcdgOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_tLIxzA-2w0e-6-v3HuiaUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_7_15_2024_To_7_15_2024_us-gaap_SubsidiarySaleOfStockAxis_dsgx_BaseShelfProspectus2024Member_5Z8ZCcWMOUO76bMv09nQEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:BaseShelfProspectus2024Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-15</startDate>
            <endDate>2024-07-15</endDate>
        </period>
    </context>
    <context id="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_mEkKpjUzJ0-wwdVRxvQgEg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:ShelfProspectusMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-15</startDate>
            <endDate>2022-07-15</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_S44TR7fVgkSPz63FEkoxJg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_ZMC6sYmwKUWILe6TNx0cvA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_N--uJkt4tU2vFwCD3jya-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">dsgx:SingleReportableSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">dsgx:SingleReportableSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">dsgx:SingleReportableSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_oaGEQuOqdkSKMjGg5vwuPA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_ucwLD6SFtUC9AbAwH4MvmQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_jtU7415FjECejIXz3gks4Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_NIQBOw-JzkawB0TaLNxtyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_DS62IYIGQkSDYdw6UNHjEA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2025-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_10_11_2024_To_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_HO5D11lrBkmYPtX-53M1_A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-10-11</startDate>
            <endDate>2024-10-11</endDate>
        </period>
    </context>
    <context id="Duration_9_17_2024_To_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_tvYOfTRE_Ue2DvczmmkSfA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-09-17</startDate>
            <endDate>2024-09-17</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_qFZ8AKGr10C7QT1d9FDHQA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">dsgx:BusinessCombinationAgreementsPerformanceBasedConsiderationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_6vkXrDOz9UGLGWWNWYa_sw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-14</startDate>
            <endDate>2023-02-14</endDate>
        </period>
    </context>
    <context id="Duration_1_5_2023_To_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_KsaVe4hx50-16OKx7jq0Uw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-05</startDate>
            <endDate>2023-01-05</endDate>
        </period>
    </context>
    <context id="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_ejOpE2bBH0yIbjoqBg6D5A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-06-03</startDate>
            <endDate>2022-06-03</endDate>
        </period>
    </context>
    <context id="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JD05O5TIF0WBwBI7YRZTow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-09</startDate>
            <endDate>2022-02-09</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SellerCloudLlcAndSellerCloudEuropeLtd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:OcrServicesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:MyCarrierPortalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BoxtopTechnologiesLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AerospaceSoftwareDevelopmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:LocalzPtyLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GroundcloudMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:SupplyVisionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_0s5zchjXzkSUBO5BeIMepQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-01</startDate>
            <endDate>2025-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2024-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2023-02-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2023-01-31</endDate>
        </period>
    </context>
    <unit id="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">
        <measure>pure</measure>
    </unit>
    <unit id="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">
        <measure>shares</measure>
    </unit>
    <unit id="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Unit_Standard_segment_2f_V29RRlkaFYgf_PufsGw">
        <measure>dsgx:segment</measure>
    </unit>
    <unit id="Unit_Standard_EUR_4XGw_XmhwUmxX-nBeOzlPg">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="Unit_Standard_GBP_P5WfE-ByI02morAY7qIWwg">
        <measure>iso4217:GBP</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_X-7CoexA70ew-d1AUzmIgw_3_1">0001050140</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_QKpoNPNcLkmE3vUe18sFqQ_4_1">--01-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_kLLraMKeTUmby3NphPlNJA_5_1">2025</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_qM-IHqNzikmatd8tYiEXlg_6_1">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_kaNZNRXNMEGHwhqf5ls_FA_7_1">false</dei:AmendmentFlag>
    <dei:DocumentPeriodEndDate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_hqpgh7r780yTvOrSp5G2qw_8_1">2025-01-31</dei:DocumentPeriodEndDate>
    <dei:DocumentType
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Narr_ZlXxysou3UKiVObFRdnzxQ">6-K</dei:DocumentType>
    <dei:EntityRegistrantName
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Narr_akhWNSJwvkix2Fi-icks5g">DESCARTES SYSTEMS GROUP INC</dei:EntityRegistrantName>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      id="Hidden_Ym-OStPEIkOcDpKoRKCysQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      id="Hidden_DVie8c-nIEaPFs5EIEf7Ow"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q"
      xsi:nil="true"/>
    <us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      id="Hidden_Zddgu-Dml0yC28AQK7uRVw">http://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrent</us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:CommonStockSharesAuthorizedUnlimited
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      id="Hidden_9cHY6ZmmzE6jnCbahdKCPg">Unlimited</us-gaap:CommonStockSharesAuthorizedUnlimited>
    <us-gaap:CommonStockSharesAuthorizedUnlimited
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Hidden_yrDfuhB3y0eYhFQoItf2gQ">Unlimited</us-gaap:CommonStockSharesAuthorizedUnlimited>
    <us-gaap:PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw"
      id="Hidden_Fci6PjFBwku2_gnZn3HKtA">http://fasb.org/us-gaap/2023#UsefulLifeShorterOfTermOfLeaseOrAssetUtilityMember</us-gaap:PropertyPlantAndEquipmentUsefulLifeDescriptionOfTermExtensibleEnumeration>
    <dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_oaGEQuOqdkSKMjGg5vwuPA"
      id="Hidden_-YLk83amU0eYhwI_cdxmTg">P4Y</dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Hf31aahcWEOKuTWcdroOmA"
      id="Hidden_p0K7MBptOk-gqxxjqsFSWA">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <dsgx:CashSettledRestrictedShareUnitsVestingPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_oaGEQuOqdkSKMjGg5vwuPA"
      id="Hidden_xODkettpHUKPFsEYeyXoCQ">P3Y</dsgx:CashSettledRestrictedShareUnitsVestingPeriod>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Pb0Gt03z7k2QcrZNIpMFFw"
      id="Hidden_N7pYUxv4gkKjaFXQZFbtjA">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_ejOpE2bBH0yIbjoqBg6D5A"
      id="Hidden_wLzvF18aMkSoqfV2k_2U7A">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_nodCvkIGeUeVfZ8ms5nNjg"
      decimals="2"
      id="Hidden_wUviR6C3fEqFUQmmSc77-w"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.10</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lFeO-F4w00-Q6vKuPPDNdA"
      decimals="2"
      id="Hidden_mtJIG6LVE0yH0J6Nr7Bteg"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.13</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      id="Hidden_-c-HgOnF9kGzA58VCMLhTg">http://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrent</us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration>
    <dei:AmendmentFlag
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Narr_QoHrWDQVFEeyN1PTuN2HGg">false</dei:AmendmentFlag>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_CHfT8mGpgkmDABrQtb8ZiA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">236138000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_jxjHW78V3U6_y0NSiS1IMQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">320952000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_kfd0JY7mCUeseiFnpTVsoQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53953000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_lFvjAE5RcE29L0OWKdMF0w_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">51569000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_SQAZEsnOYkKpt2hLv8pIyQ_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16931000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_MLzlFNzl0k6z8avv58e8oQ_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12193000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_ah9J0ei69kmEj4j-dERGAQ_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">45544000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_O8Mz5Aa40EeSEoqkE9wyAA_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">33468000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_4mgQBi85D06Afvf10cKSPw_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">352566000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_cix-wpEgek2bNTgRY8PF_A_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">418182000</us-gaap:AssetsCurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_tkvLo9q6IkWnq50s-JUTsg_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">24887000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_WhQSiZdjP0SK0Uhny2-gRQ_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">24737000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_VYXR-kWbsE6L-C3_YY2A-A_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12481000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_Aw6PfXecCE-BNTsk_RHumQ_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11552000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_cJAXxHL_L0qEVASbGjkMqA_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7623000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_2v_aY8Z2NUewJVGcjKUWtg_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6257000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_-qdecnzaW0e_0LSOfuwOvQ_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3802000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_Vro-v2EFc0iI9uG_T--I_Q_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2097000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_nVT7LqyyJ0u4heKgtseuxA_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">321270000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_YxXbJbVRVkmMtSgRxRyimw_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">251047000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_JT9Yc_VPsUqwH9mCDHxRgw_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">924755000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_KJS6X89aqEOnQu_xDM1W6Q_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">760413000</us-gaap:Goodwill>
    <us-gaap:Assets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_1DLVOIpXfkW9tpPK28h6KQ_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1647384000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_jB0Csmj7o0iqp5GlrKna8g_17_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1474285000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_hICdF187l0GuIhcDk1V6Jg_20_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">20650000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_EyGIDWLKjU2DSYnjeBnfVA_20_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">17484000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_hHjx9TRIPEqyxaj5IuVhBQ_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">79656000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_QZobzueaOk2Ww0kVq8j4dg_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">91824000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Dwnfw61PNke3_savjOMnqQ_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3178000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_aTvz1JU1uUKkI6-pAhHiVQ_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3075000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_7KV0_ZWKCEG7jFBKEVwrrQ_23_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9313000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_RMa6qVLMWE-6N7BGMN0IlA_23_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6734000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Fy5nu2EyoUuifRbjgE5-gg_24_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">104230000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_0sDlt-B43E-u6xAXoeTzuA_24_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">84513000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Zmpyc4Mv402JQkbWu9-V2Q_25_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">217027000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_GWd4uB_YlEKmtCWl89A_7Q_25_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">203630000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_4n-c0Tm610uRU9O33cYrPQ_26_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4718000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_xGfND8qJmkaaaM-Shyb-Sg_26_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3903000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_3OWMJyYCXE6B-SC4c1BWfg_27_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">978000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_0FrXIGKJmU2BK5FIS1jI5A_27_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1464000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_QfHKhFq8AkiB0SKCgyGWpQ_28_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5531000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_VM7WadcJi0CQlVQ6hjmnVQ_28_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6153000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_gi_dITCTYUO4Xyf5FFf73Q_29_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">34127000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_xH-3oXnl0EiOwou51SzORw_29_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">21101000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:Liabilities
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_iDlBhxYaF0q809hVVFaR8g_30_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">262381000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_R_a46xO3KkyehudaebvLSA_30_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">236251000</us-gaap:Liabilities>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Narr_4-LLWYX8SEOKhTUkQ5d_IQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85605969</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Narr_BF-TaEWWa0GbVy_voK-m1w"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85605969</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="INF"
      id="Narr_dmy39sk92kWMYAwWVg2-qQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85183455</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="INF"
      id="Narr_0lS6VgKCZ0O8OMEYl4z0tQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85183455</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_J7C520-gy028I1h9xbVvCw_34_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">568339000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_-iC703aX2ECHIqAObLuasA_34_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">551164000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_hQ-lXQ8jqUK3ZXJ83tyufQ_35_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">503133000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_n0WhrF4tZUyW6-Owj6_DqA_35_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">494701000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_DOCcBETKKkSbQOPiJ-0qBQ_36_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-50497000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_2xafTuM1n06sgQ5nu1X_Aw_36_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-28586000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_fc69UwyYyEKdN7gjQBRe-w_37_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">364028000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_jdTk7UZdGUOcshZIKcAdHQ_37_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">220755000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_dOKTtXxdPkWUArlYmU40qw_38_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1385003000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_jSzPKFDAd02Ho0SUvhRg2g_38_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1238034000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_v--B2vYRMkqh830XNZljIQ_39_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1647384000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_9LBUYwdvR0234VHFWtX1Mg_39_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1474285000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_VDnRbEg1skSMokTKF1YIoQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">651000000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_26lcN4l2GUyN27Z3MS9mqg_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">572931000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_41toRXewmUqSErmO7WMQTQ_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">486014000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_v7prsMhe7UWx8Zec-3GbuA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">158574000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_26tNsXCImECo0SqWrKVTQg_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">138295000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_7YTbOBS85EmIQlyr_pWAxQ_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">113326000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_vWiFMzTeJkioU7LMAhGJUg_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">492426000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_16Wh26MtiUWXPwSap1fSzQ_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">434636000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_GTSxEcvXYkGNojtVw6gICw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">372688000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_i6BPls7jCUSe8Y4YyF4INg_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">73692000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_GVL0hnQUqkWJqWkS3AcHfA_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">68161000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_cJ52IirvokumktCpaSmeWQ_8_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">56573000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_QMWnthG-BUSv8jTTHr0XOg_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">95497000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_V3yXX1lYuUSfVbahMaNWkA_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">84103000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_q2wTyv3pfUiXc1meH7TVEw_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">70353000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_CDWpE3u5vkaR3sroA5y5SQ_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">65248000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_OxI3XkW4QUK2Ze9C90OqyA_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">57373000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_OHjwsEuZlkSKz8YotBuERw_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">49710000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_8uI3MgIy4EyM1kS9s-h2cQ_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7466000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_MmWSePsGOkWz3YWEX5tDlA_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">21649000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_dTjBsKNG8UqoogrISM5qUQ_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5441000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_RnSXR_juy02tC6gUuTrNFg_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">69399000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_93oQw7wcmkiBh6V3yvix1A_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60501000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_qJ0eV4_f60m_5PEYpXPCPQ_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60177000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_CKgmOJyciU-OdwNvGyTWHw_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">311302000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_7cgm3w2rGEKpV7Ew2O8nRA_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">291787000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_nFqYrdiRj0yFP1qJNHys_g_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">242254000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_RVCe24vqUU6mPr_89GAQcA_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">181124000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_HtYWMZb70EutSEU4uN5_5g_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142849000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_bW_oK4kUWE2dL9iZ9LpHsg_14_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">130434000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_I-jwkUYuOEiH051OOl23TA_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1004000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_fC1h0WCLQk6P77dBYxDzNQ_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1363000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_80Fd7ZxuvkmzztVEPNGcJA_15_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1167000</us-gaap:InterestExpense>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_5Yu7WBbmEUSsjTaP0mXckA_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11513000</dsgx:InvestmentAndOtherIncome>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_bNusPRgtY0eKWkhFCeUsuw_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9666000</dsgx:InvestmentAndOtherIncome>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_29yf_Q_t4Eq9cHLqvRF7IA_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4461000</dsgx:InvestmentAndOtherIncome>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_43gUhn0SKEKUbhh4jWKHDA_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">191633000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_cuRdd3-lxUWR1yJkLX1g7g_17_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">151152000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_g7RkF_ty2EeT67ZkHaTWVg_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">133728000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_5lJ704KD30WJGI1ghyhdtg_19_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53402000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_howbPGdTpEW9PZ54-cVmrw_19_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">41223000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_FUk8aoWMM0y6FcTM4ZSI-A_19_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">28248000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_quB6AJ1Yn0q_t-bVyZ3kXA_20_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5042000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_njLICpaXuECN_LS4xWW26Q_20_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5978000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_3owDbajyFUiyZI_5LBeB9g_20_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3244000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_i7oarAy0dUiNdimfOIycvA_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48360000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_JaKzMvF020CrECn43E5UaA_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35245000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_J56hZCsmrUOcrs3c-xGb0A_21_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31492000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_vZbw1VERkUmgF1uNFtNFCg_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">143273000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_UnZzxkey-kaPB58weiEB1w_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115907000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_KRaIvv8xnkePyDJIXSsBFA_22_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102236000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_t5aJUkQHO0asXrHJXHuYow_24_2"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.68</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_74dd_VKe5keJkWNVM0V8SA_24_4"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.36</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Tc_F--MPc23v0GTCCuXUQo1AQ_24_6"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.21</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_voYpUWUAS0-pp_7zP3OtZg_25_2"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.64</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_NlWI4krCDEammPuyDpOBEg_25_4"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.34</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Tc_VpMCSzOjAUamf9PYkAjRfg_25_6"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.18</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_nstvyDNRn0GOG8NSX7TaaQ_27_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85443000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_tG4msv9ar0qaEqAfxw05EA_27_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85068000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_WZ_MdodcW0iOLlFG-rtJUA_27_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">84791000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_Tw96ztT9gUKs_vjTTb7iCA_28_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">87323000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_KcIcG856tkaxPUj39VkdQg_28_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">86818000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_jRHN6SSvHUukCH1aRiFW9Q_28_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">86451000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_vgTQe9gW2kqbIVhdIloITA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">143273000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_f1xSdSiPSkuYc1mgdoacEw_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115907000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_sdu3wQzj-0CXPf5GeeQxFQ_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102236000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Narr_fV7QmC6bZ0SYjRgQlBq9LQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-391000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Narr_CfxXTgJoRE-UGPsgUZIBtQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1094000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Narr_9-NTq-9BX0WbPWlQJdPHlg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-58000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_lh0jwHjre0iXruc3qlA0Pw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-21911000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_2hgbkRQ6GkG4q7zjAyT9iQ_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1870000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_n5RWqS4SdUiAgA73xFHGSw_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-18063000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_cmoa3K_YAESAU4Sg0CZCSA_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-21911000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_sKwWNekwAE6rJS4ikuzSaA_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1870000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_K880w6ngFU6gCGNil-KMWA_8_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-18063000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_XEpbCb6k60a7tCfA7j440g_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">121362000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_LSi5KUi20UyImeRrLczCRg_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">117777000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_hRtu330zkkG9MrEwYJO-pQ_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">84173000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ONNSmfAFLU2r9QyLtDKQdg"
      decimals="-3"
      id="Tc_ZpgxpYraSEKxpyVYZX0s7A_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">551164000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_LPYOpY2mD0KueCOKxSreig"
      decimals="-3"
      id="Tc_wjxMSCuTRUmI3n64qrlg9g_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">538448000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_pdvd9opf0EmTA4vY3rwJwA"
      decimals="-3"
      id="Tc_rasM7HPPX0W52gsI8qN8-Q_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">536297000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uUzTcmdSIkSTNn7W5gkVVA"
      decimals="-3"
      id="Tc_rjxqFZI3QUmvdQJSHFuFwQ_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">17175000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_quv2HM7Wnk-vrR8nBH9zyA"
      decimals="-3"
      id="Tc_vfxDjukSMEiRJoBA2Sx9vA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12716000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_FqO6D9icB0-m9TaBJJLk6Q"
      decimals="-3"
      id="Tc_3cudCbXC7EKHKeyVIblQTw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2151000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_deaPScdFcEq6NKWslvdpzQ"
      decimals="-3"
      id="Tc_lqqOXsYySEKjDWYVgsEbHQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">568339000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_ONNSmfAFLU2r9QyLtDKQdg"
      decimals="-3"
      id="Tc_ql6Pdl5zWU-iLVuJFVv4VA_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">551164000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_LPYOpY2mD0KueCOKxSreig"
      decimals="-3"
      id="Tc_1Zt1rVpYnEqAMP3eyTSmbA_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">538448000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_sfuZ6nhlmUeDaCYsqZmXOA"
      decimals="-3"
      id="Tc_8iafRu1OA0-Q0K2bk7YAJw_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">494701000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jJZe_wORSkuhP9G8pScoKw"
      decimals="-3"
      id="Tc_FGWirunJcEipsRq77rBFAw_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">486551000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_p-0qPeTS6UKlrC3J9r9OXw"
      decimals="-3"
      id="Tc_gp7Jqa_6oE-LZfy2Fcr8KQ_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">473303000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_mrABNMA4gk2eTijk8iNOdw"
      decimals="-3"
      id="Tc_g1fviC1sSEWk10JqudGBow_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19962000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_19_KbqfP4U6aO7yGSqOyLQ"
      decimals="-3"
      id="Tc_FvLB3uGorkeakysQsfacDw_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16480000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nEtpcKGo3kKmavV9ctha6g"
      decimals="-3"
      id="Tc_YSx6nDFRKEK06ws19KQCxw_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13667000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_mrABNMA4gk2eTijk8iNOdw"
      decimals="-3"
      id="Tc_7UfMtzJ020iI9Mqzpu7Qsg_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-11530000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_19_KbqfP4U6aO7yGSqOyLQ"
      decimals="-3"
      id="Tc_bSQFPDsG2UW876dbdIE3NA_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-8330000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nEtpcKGo3kKmavV9ctha6g"
      decimals="-3"
      id="Tc_pglDrvd_6kqqyswM3XWsTQ_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-419000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_WJ7hDHiTiEGhyylWCtoSgA"
      decimals="-3"
      id="Tc_0CEvVswa9EyFQ6e4V_hcGQ_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">503133000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_sfuZ6nhlmUeDaCYsqZmXOA"
      decimals="-3"
      id="Tc_G0PiMYkAgUa6dFecPvK_vQ_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">494701000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jJZe_wORSkuhP9G8pScoKw"
      decimals="-3"
      id="Tc_k0avLQKKo02H-TdpPwSbMw_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">486551000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3Ng61soA6EiEjE14GfjGdQ"
      decimals="-3"
      id="Tc_fbbYiZIL1UeI50nvZQeiYw_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-28586000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_jVXJQtjgTkyBxSFQOXTt0w"
      decimals="-3"
      id="Tc_qgakK_4eBEaW7gR8VBT26Q_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-30456000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_eqyDr6O210uUltvKo6nSwA"
      decimals="-3"
      id="Tc_a4681g_9LUqutQ_MXjdEnw_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-12393000</us-gaap:StockholdersEquity>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_qpSR7Sw6OUOd5UbcZ5Quhg"
      decimals="-3"
      id="Tc_6F9mzsf7HUaYkiZtH5EBgQ_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-21911000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tsD-66TsZ0iu5mcDjH7frQ"
      decimals="-3"
      id="Tc_5BZY5nrqjE-T8Hci7pNGnA_17_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1870000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_7punDIlfu02bV8Ry--oT0A"
      decimals="-3"
      id="Tc_MVdatWoSXU29iEyAcv-pOw_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-18063000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ZZoJDsZMCkughNkJdOYgQw"
      decimals="-3"
      id="Tc_lDwHu85uR0ehuvqOKA1EBg_18_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-50497000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_3Ng61soA6EiEjE14GfjGdQ"
      decimals="-3"
      id="Tc_rFUHHhrZZk-t6E-C6ttiCw_18_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-28586000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_jVXJQtjgTkyBxSFQOXTt0w"
      decimals="-3"
      id="Tc_t7fQ2LxdjUOzwPttIRMLsg_18_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-30456000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hfxuVkTEO0CpSC-CLc9ocg"
      decimals="-3"
      id="Tc_ypOOAZ0epUaHb8nzmrIlDA_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">220755000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_2yDO-83P6UGboHA1yVxB9g"
      decimals="-3"
      id="Tc_L8S7R1Rh8ESSOrd6zvJBug_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">104848000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XMziVGkzgkG6rAiDzbV1mg"
      decimals="-3"
      id="Tc_Fi0fvVTOQkCKvC4PYwnbAw_21_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2612000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_-Lmbiku6u0GkDADSUfLlPg"
      decimals="-3"
      id="Tc__iFziWTlbUiZWZQXZvcS3Q_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">143273000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_eFr7WsFJQEOi_8z-9mvrFg"
      decimals="-3"
      id="Tc_OoHug14cZk648RfreIEm1A_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115907000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_4daqMAqhVUqvg0wDpZoNYw"
      decimals="-3"
      id="Tc_D42ONNOcn0qon2zUydeRog_22_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102236000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2025_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Xo5nsPjbxEarpd47qSr5eg"
      decimals="-3"
      id="Tc_bohPgt4UvEGtFEevK0Sasg_23_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">364028000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_hfxuVkTEO0CpSC-CLc9ocg"
      decimals="-3"
      id="Tc_oW-QWaO6l0mqkchOVtPgDQ_23_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">220755000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_2yDO-83P6UGboHA1yVxB9g"
      decimals="-3"
      id="Tc_sN2QnrRAXkaQ5QsLUv58Vw_23_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">104848000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_A723gvcFHUycgMfPPcEgXw_25_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1385003000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_acvM61L7qEKT7hVA4u2M_w_25_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1238034000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_eXAE6MzzS0-HnvUCTGDYRg_25_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1099391000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_ffNi29KBLUqQtpjwsyDcNw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">143273000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_3biLm-1_sEyZgzwZhMbC_w_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115907000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_nzwza1cgYk2z4UBg9I1zJQ_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102236000</us-gaap:NetIncomeLoss>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_pSoTmN6r7EKvCh87LzXdAA_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5589000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_nCKQPIbgO0-S_ElTsild0A_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5474000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc__X1N2xBVd0mKuaAm5xSrkQ_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5225000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_QvIwjU_fo02-P2q5j5Uv_Q_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">69399000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_38mQ57KxWkieWnWbRuXG3g_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60501000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_heANWBF_qEqMBIIF25sVYQ_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60177000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_T09dGfDdEkeev1KsidqWJQ_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19962000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_Fb9Qn2wtbE2XFgjpdN5QmQ_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16480000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_6n_xhp_ElU28zOJeQnCoow_8_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13667000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_PHqgFGHCWEadXSFH_iVD0Q_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-23000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_NIW4ci0kVkC-wV6HEnTZ6Q_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-114000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_udOaGQ-7EkG4AtVS65KVCA_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-53000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_cy2__w92_UW3WX_vzsX1ng_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5042000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_WgIVVNGZakeKeLhcqMWsww_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5978000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_9bjcWnuagUGkmql2oviQNg_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3244000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_4Hd8lMjTNEOrUaei4vbQKA_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13932000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_ebqjJJR9qEyZYDMU0wjR_Q_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-15182000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_aTltZkf1-kSEujrfFLi0Bg_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-7793000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_1sX6gqxv5EKXt3gyfp0FiQ_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">219272000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_lCfmGgL8O0Gv7Lq-pZ6UwQ_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">207680000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_DESYzL3Zy0Khjj6XxhivgQ_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">192395000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_HEha40-xi0iyV83FZNahNQ_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6743000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_AZ_9pLrGs0GlRxfMvApBcg_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5563000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc__xURxsHWl0qCDO1F8h4tXQ_14_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6071000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_9i6Q4wIZvkmE6mX0iojrjg_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">290204000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_gII8uYSfIk2ip5lgR8AaaQ_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142700000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Eqabvkh0l0iUGt4qjVvwcw_15_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115561000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_sEnE0DyrKkWkWMDc9K1GjQ_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-296947000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_T51fOS5520iuT4XKVNW-zg_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-148263000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc__ghC3OFSTkOcWa7rX8GbIg_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-121632000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_iLgNPwTiF06suP3U8b5pyw_18_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_oDjl-SmMpkqBtU3t6940Tg_18_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">43000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_shoGMKi30ECIUHOSJTtNSw_18_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1118000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_HJRIL9uUo0-N8fy7Vbn00w_19_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12391000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_p6Xp1GRKhUayjsX_JS_pjw_19_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9272000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_QSWVSDYOsUas43Diardovw_19_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1730000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_DWvtRSgpIkC1nr1jtlS5Lw_20_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6745000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_R9rG4u7EN0q8tqf3IjCSRA_20_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4886000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_Ezs4jrYcN0i2d1oikg0olg_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9223000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_5SQH4iLUPUOlS0FeSQtlWQ_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19084000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Ox21EpKj7EuPdU8tC9V7Sw_21_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5215000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_qixXncuvo0itFH5g5SwgqA_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-3630000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_TO2tiS_fBECkJ5kL__DTrQ_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-14741000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_AcFbo3_D7Eas-S35qkajKg_22_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-4603000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_7j2bQptoQEm_O7gLmmhz9g_23_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-3509000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_yJNduI-vj0q9JdyfZc4Urw_23_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-109000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_NUHX--TrMEy9RH9hlwIrNA_23_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-3212000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_LcHUQ6woBESq_bp2oDDDsw_24_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-84814000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_osNSxQFQo0qr4_FhxP3NEA_24_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">44567000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_jZdX6XDkpkCVJMAxzNDxgg_24_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">62948000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_eqRuZwsbV0CW9mKwAkr2Ow_25_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">320952000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_Gx8OQcIlfESb4J55l_PoYg_25_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">276385000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ"
      decimals="-3"
      id="Tc_5dnNa201OUSga_uFNw4VDA_25_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">213437000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_5RvOsyolv0GSohJUw4q9tw_26_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">236138000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_7EtW6FmUaka1QYddtQbRIQ_26_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">320952000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_cOTbbny7pU67PUIIv8Aekg_26_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">276385000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_UsRUdV3RS0-CiAAG-r3lFA_29_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53411000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_B1bm_9vqxUen2_JfW8R67w_29_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">44939000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_wSYn093i20a91QaLAcTbww_29_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">23791000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_BRxAzgQsQ0Wy8dpiJ8py5A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;1&#160;- Description of the Business&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The Descartes Systems Group&#160;Inc. (&#x201c;Descartes&#x201d;, &#x201c;Company&#x201d;, &#x201c;our&#x201d; or &#x201c;we&#x201d;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&#x201c;SaaS&#x201d;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports;&#160;and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_YaEvBkmMTkeVW5HJx142YQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;2&#160;&#x2013;Basis of Presentation&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The accompanying consolidated financial statements are presented in United States (&#x201c;US&#x201d;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#x201c;GAAP&#x201d;) and the rules&#160;and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our fiscal year commences on February 1&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of each year and ends on January 31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of the following year. Our fiscal year, which ends on January 31, 2025, is referred to as the &#x201c;current fiscal year&#x201d;, &#x201c;fiscal 2025&#x201d;, &#x201c;2025&#x201d; or using similar words. Our previous fiscal year, which ended on January 31, 2024, is referred to as the &#x201c;previous fiscal year&#x201d;, &#x201c;fiscal 2024&#x201d;, &#x201c;2024&#x201d; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &#x201c;2026&#x201d; refers to the annual period ending January 31, 2026 and the &#x201c;fourth quarter of 2026&#x201d; refers to the quarter ending January 31, 2026.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have reclassified certain immaterial items in the consolidated financial statements to conform to the current presentation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Basis of consolidation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Foreign currency translation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#x2019; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the year ended January 31, 2025, foreign currency re-measurement loss of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million was included in net income (January 31, 2024 &#x2013; loss of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million; January 31, 2023 &#x2013; loss of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million).&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Use of estimates&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#x2019;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as contingent consideration related to business acquisitions, product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#x2019;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#x201c;SSP&#x201d;) of performance obligations in contracts with customers. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Cash&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash included highly liquid short-term deposits with original maturities of three months or less.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Financial instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Fair value of financial instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The carrying amounts of the Company&#x2019;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Derivative instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#x201c;Derivatives and Hedging&#x201d; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#x2019; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Foreign exchange risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Interest rate risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Canadian Overnight Repo Rate Average (CORRA); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Credit risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Equity risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Provision for Credit Losses&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Inventory&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Impairment of long-lived assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Goodwill and intangible assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We test for impairment of goodwill at least annually on October 31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#x2019;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2025 and concluded that it was more likely than not that the fair value of the reporting unit was greater than the carrying value. As a result, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;no&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; impairment of goodwill was recorded in fiscal 2025 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;no&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; impairments were recorded for fiscal 2024 or fiscal 2023).&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Amortization of our intangible assets is generally recorded at the following rates:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;20 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technologies&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;15 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"&gt;&lt;span style="font-family:'Verdana';margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Property and equipment is recorded at cost. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depreciation of our property and equipment is generally recorded at the following rates:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;14 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Straight-line over lesser of useful life or term of lease&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Leases&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#x2019;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#x2019;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Revenue recognition&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a monthly basis based on the customer usage for that period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Professional Services &amp;amp; Other&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Costs to obtain a contract with a customer&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_-YLk83amU0eYhwI_cdxmTg;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;six years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Contract assets and liabilities&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Research and development costs&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Stock-based compensation plans&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Stock Options&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant. &#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Employee stock options generally vest over a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; period starting from the grant date and expire &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;seven years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; from the grant date. Non-employee directors&#x2019; and officers&#x2019; stock options generally have quarterly vesting over a &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_p0K7MBptOk-gqxxjqsFSWA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The fair value of stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance &amp;amp; Restricted Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#x201c;PSUs&#x201d;) and restricted share units (&#x201c;RSUs&#x201d;).&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;PSUs vest at the end of a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;three-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#x201c;TSR&#x201d;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;ten years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; from the grant date. New shares are issued from treasury upon the redemption of a PSU.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;RSUs vest annually over a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;three-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; period starting from the grant date and expire &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;ten years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#x201c;DSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a percentage of the eligible director&#x2019;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;50%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#x201c;CRSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_xODkettpHUKPFsEYeyXoCQ;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of the calendar year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Business combinations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We apply the provisions of ASC Topic 805, &#x201c;Business Combinations&#x201d; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#x201c;Exit or Disposal Cost Obligations&#x201d; (Topic 420) and are accounted for separately from the business combination.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Income taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recently adopted accounting pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In November 2023, the FASB issued Accounting Standards Update 2023 - 07, &#x201c;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&#x201d; (&#x201c;ASU 2023 - 07&#x201d;). The amendments in ASU 2023 - 07 improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant segment expenses. ASU 2023 - 07 was effective for fiscal years beginning after December 15, 2023, which was our fiscal year that began on February 1, 2024 (fiscal 2025) and interim periods within fiscal years beginning after December 15, 2024, which was our fiscal year beginning February 1, 2025 (fiscal 2026). The Company adopted ASU 2023 - 07 retrospectively in the fourth quarter of fiscal 2025. The adoption of this guidance did not have a material impact on our results of operations. For changes to our disclosures see Note 22.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Recently issued accounting pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In December 2023, the FASB issued Accounting Standards Update 2023-09, &#x201c;Income Taxes (Topic 740): Improvements to Income Tax Disclosures&#x201d; (&#x201c;ASU 2023-09&#x201d;). The amendments in ASU 2023-09 enhance transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. ASU 2023-09 is effective for annual periods beginning after December 15, 2024, which will be our fiscal year beginning February 1, 2025 (fiscal 2026). Early adoption is permitted for annual financial statements that have not yet been issued or made available for issuance. The Company expects to adopt this guidance in the fourth quarter of fiscal 2026. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In November 2024, the FASB issued Accounting Standards Update 2024-03, &#x201c;Income Statement&#x2014;Reporting Comprehensive Income&#x2014;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#x201d; and issued a subsequent amendment to the initial guidance in January 2025, collectively referred to as &#x201c;ASU 2024-03&#x201d;. The amendments in ASU 2024-03 require disaggregation of certain expense captions into specified categories in disclosures within the notes to financial statements, which is expected to enhance cost transparency and improve comparability. ASU 2024-03 is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods within annual reporting periods beginning after December 15, 2027. Early adoption is permitted. The Company expects to adopt this guidance in the fourth quarter of fiscal 2028. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.&lt;/span&gt;&lt;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_v_D9HScmmECRWcGuT5-7mQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The accompanying consolidated financial statements are presented in United States (&#x201c;US&#x201d;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#x201c;GAAP&#x201d;) and the rules&#160;and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our fiscal year commences on February 1&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of each year and ends on January 31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of the following year. Our fiscal year, which ends on January 31, 2025, is referred to as the &#x201c;current fiscal year&#x201d;, &#x201c;fiscal 2025&#x201d;, &#x201c;2025&#x201d; or using similar words. Our previous fiscal year, which ended on January 31, 2024, is referred to as the &#x201c;previous fiscal year&#x201d;, &#x201c;fiscal 2024&#x201d;, &#x201c;2024&#x201d; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &#x201c;2026&#x201d; refers to the annual period ending January 31, 2026 and the &#x201c;fourth quarter of 2026&#x201d; refers to the quarter ending January 31, 2026.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have reclassified certain immaterial items in the consolidated financial statements to conform to the current presentation.&lt;/span&gt;&lt;/p&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_YJJ9SWrCx0iL7NdDBs-6YA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Basis of consolidation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.&lt;/span&gt;&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_uU-MKNI07EKSSx-Jc6GZsQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Foreign currency translation&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#x2019; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the year ended January 31, 2025, foreign currency re-measurement loss of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million was included in net income (January 31, 2024 &#x2013; loss of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million; January 31, 2023 &#x2013; loss of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million).&lt;/span&gt;&lt;/p&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_1cinGfz-lkGpdE6fAlWcpQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">500000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_WpuuyYGSu0C5BijgxtETqA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000.0</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-5"
      id="Narr_af5HR1ypjk-Fu0_K-aveSQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1200000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:UseOfEstimates
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_CSFeEexp0EKCGf7341_wvQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Use of estimates&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#x2019;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as contingent consideration related to business acquisitions, product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#x2019;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#x201c;SSP&#x201d;) of performance obligations in contracts with customers. &lt;/span&gt;&lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_28_VAg38YEml7a6srask3A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Cash&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash included highly liquid short-term deposits with original maturities of three months or less.&lt;/span&gt;&lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_h6l4_OXtEkekjrIvvjUEoQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Financial instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Fair value of financial instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The carrying amounts of the Company&#x2019;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Derivative instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#x201c;Derivatives and Hedging&#x201d; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#x2019; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Foreign exchange risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Interest rate risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Canadian Overnight Repo Rate Average (CORRA); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Credit risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Equity risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_wjucQkPQl0yTnUkUP6g6zA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Provision for Credit Losses&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. &lt;/span&gt;&lt;/p&gt;</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_p4X9_XDhsUiED9rOt-UK9g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Inventory&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.&lt;/span&gt;&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_jKaswZXuR0SGttzjaDz7jA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Impairment of long-lived assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.&lt;/span&gt;&lt;/p&gt;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_HVmxfbR0DUmpiCNjuW_MZQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Goodwill and intangible assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We test for impairment of goodwill at least annually on October 31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#x2019;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2025 and concluded that it was more likely than not that the fair value of the reporting unit was greater than the carrying value. As a result, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;no&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; impairment of goodwill was recorded in fiscal 2025 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;no&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; impairments were recorded for fiscal 2024 or fiscal 2023).&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Amortization of our intangible assets is generally recorded at the following rates:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;20 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technologies&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;15 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="0"
      id="Narr_8nlpJ5_g7UiwiVr7xF-8lQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="0"
      id="Narr_hZp61dXPH0mr-pYsWoqq3Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="0"
      id="Narr_iHO34NjyvUyOzlgBvBUrgw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:GoodwillImpairmentLoss>
    <dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_A9FDIX06XkCxrB-eSXMUzg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;20 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technologies&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;15 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uGIbCZBY1UqAq72UYM0Gew"
      id="Narr_RRrRSHthskW7BypRoLb2Xg">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QZK_mOfVYkOCMsFFa28N8w"
      id="Narr_0w8Cl906OEuRafY_KIVnNA">P20Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember__dH2z9o4o0qjaumuWtExHg"
      id="Narr_j9XIsy6KeE6sGoaaDBh0rQ">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_f5tfJp8bwUmRi7WcQjlDCw"
      id="Narr_eWFkop9aTkCzOL8X61alCQ">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_GlCnS2eQ70-THFgNQtM-2g"
      id="Narr_Wo9xMqZ4c0iM8O8AgqdwlQ">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NDBGoKmY2kKbkiGg_0vp7w"
      id="Narr_ONZ1u39AJkyEhSdnH6raLQ">P15Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sHvFJqqXPkW4qWunmHxh-Q"
      id="Narr_84hqtzx8gkW9RI5due9XFQ">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LcnFxLiVzUq0H6h9uAQ2YA"
      id="Narr_VcDJJkAsK0iBBJgok6ZQRQ">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_kRiMtAGo0kWeeHMzwLA_Bw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Property and equipment is recorded at cost. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depreciation of our property and equipment is generally recorded at the following rates:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;14 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Straight-line over lesser of useful life or term of lease&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.&lt;/span&gt;&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_5xogVtsoSEeDLUstQo-nRA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;14 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_Fci6PjFBwku2_gnZn3HKtA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Straight-line over lesser of useful life or term of lease&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Straight-line over &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_GFgmd6xaLkqwQ7AC8qXndg"
      id="Narr_Dipw-UHmCUC9i01eP4sFFw">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_atjDyHjMlU-gOd3hUW_VpA"
      id="Narr_goCw9TRjq0u0JSSF59lKJA">P13Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_7bYn20uP7U2met2vX_szEw"
      id="Narr_b20WEgLD7kuf3kg27TdEkA">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_VNE4i8i7ukuSJliA6WaUbg"
      id="Narr_iDfZtg7KdkmgNtFBvhBiyQ">P14Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_Alknur5FEUiHFDnMNDMxaA"
      id="Narr_TnJLy7tiZUuP_QLTStAyig">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_jSf6t9Dc10qipNBEq_Jq9Q">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Leases&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#x2019;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#x2019;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.&lt;/span&gt;&lt;/p&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_2yjJeb7APk2sHtxWKfAvcg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Revenue recognition&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a monthly basis based on the customer usage for that period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Professional Services &amp;amp; Other&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Costs to obtain a contract with a customer&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_-YLk83amU0eYhwI_cdxmTg;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;six years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Contract assets and liabilities&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.&lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_ucwLD6SFtUC9AbAwH4MvmQ"
      id="Narr_Y38Cgy3RrUWPW3ZgTVI0aA">P6Y</dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb__vWVXyFNlk2IuTQ-7h8J2Q">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Research and development costs&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.&lt;/span&gt;&lt;/p&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_jRDYna0hukiGX-r4FeYO8A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Stock-based compensation plans&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Stock Options&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant. &#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Employee stock options generally vest over a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; period starting from the grant date and expire &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;seven years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; from the grant date. Non-employee directors&#x2019; and officers&#x2019; stock options generally have quarterly vesting over a &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_p0K7MBptOk-gqxxjqsFSWA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The fair value of stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance &amp;amp; Restricted Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#x201c;PSUs&#x201d;) and restricted share units (&#x201c;RSUs&#x201d;).&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;PSUs vest at the end of a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;three-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#x201c;TSR&#x201d;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;ten years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; from the grant date. New shares are issued from treasury upon the redemption of a PSU.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;RSUs vest annually over a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;three-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; period starting from the grant date and expire &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;ten years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#x201c;DSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a percentage of the eligible director&#x2019;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;50%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#x201c;CRSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_xODkettpHUKPFsEYeyXoCQ;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of the calendar year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/span&gt;&lt;/p&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q"
      id="Narr_yEwuwbhAWEaNEeI1R4GsYw">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q"
      id="Narr_7mmnthUDRkGzZohvC04FaQ">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_Am5CE2jzw0m9ZRTQ1EbpqA"
      id="Narr_441SI5H9-E-5JPrW0bgYzw">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      id="Narr_mLtPSdFzH0iB0KEtspmsUg">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      id="Narr_18_Lu9ar6k2tHIjiUAAK3A">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      id="Narr_GxBgOmu0PUeaD5H5WG2Ivw">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      id="Narr_ej0Mkgo4i0-OeQw8PHw2NA">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <dsgx:BaseAnnualFeePercent
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_0s5zchjXzkSUBO5BeIMepQ"
      decimals="2"
      id="Narr_GJmnUJMQZ0SfNhr-E1Dqyg"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.50</dsgx:BaseAnnualFeePercent>
    <dsgx:CashSettledRestrictedShareUnitsVestingPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_ucwLD6SFtUC9AbAwH4MvmQ"
      id="Narr_du9kodnba063a-xTPTaGSg">P5Y</dsgx:CashSettledRestrictedShareUnitsVestingPeriod>
    <us-gaap:BusinessCombinationsPolicy
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_xZ91sUBipUq62k5ThcK_kQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Business combinations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We apply the provisions of ASC Topic 805, &#x201c;Business Combinations&#x201d; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#x201c;Exit or Disposal Cost Obligations&#x201d; (Topic 420) and are accounted for separately from the business combination.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_gWLptOlYO0Cc0epj8c71sQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Income taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.&lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_KhdTincENk203J5yh5R5tQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.&lt;/span&gt;&lt;/p&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_oBhwKRSfPUqldcu7e6RCZA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recently adopted accounting pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In November 2023, the FASB issued Accounting Standards Update 2023 - 07, &#x201c;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&#x201d; (&#x201c;ASU 2023 - 07&#x201d;). The amendments in ASU 2023 - 07 improve reportable segment disclosure requirements, primarily through enhanced disclosures about significant segment expenses. ASU 2023 - 07 was effective for fiscal years beginning after December 15, 2023, which was our fiscal year that began on February 1, 2024 (fiscal 2025) and interim periods within fiscal years beginning after December 15, 2024, which was our fiscal year beginning February 1, 2025 (fiscal 2026). The Company adopted ASU 2023 - 07 retrospectively in the fourth quarter of fiscal 2025. The adoption of this guidance did not have a material impact on our results of operations. For changes to our disclosures see Note 22.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Recently issued accounting pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In December 2023, the FASB issued Accounting Standards Update 2023-09, &#x201c;Income Taxes (Topic 740): Improvements to Income Tax Disclosures&#x201d; (&#x201c;ASU 2023-09&#x201d;). The amendments in ASU 2023-09 enhance transparency about income tax information through improvements to income tax disclosures primarily related to the rate reconciliation and income taxes paid information. ASU 2023-09 is effective for annual periods beginning after December 15, 2024, which will be our fiscal year beginning February 1, 2025 (fiscal 2026). Early adoption is permitted for annual financial statements that have not yet been issued or made available for issuance. The Company expects to adopt this guidance in the fourth quarter of fiscal 2026. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In November 2024, the FASB issued Accounting Standards Update 2024-03, &#x201c;Income Statement&#x2014;Reporting Comprehensive Income&#x2014;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#x201d; and issued a subsequent amendment to the initial guidance in January 2025, collectively referred to as &#x201c;ASU 2024-03&#x201d;. The amendments in ASU 2024-03 require disaggregation of certain expense captions into specified categories in disclosures within the notes to financial statements, which is expected to enhance cost transparency and improve comparability. ASU 2024-03 is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods within annual reporting periods beginning after December 15, 2027. Early adoption is permitted. The Company expects to adopt this guidance in the fourth quarter of fiscal 2028. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.&lt;/span&gt;&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_6HlV-rv5o0Ge_q3NOFI3cA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;3&#160;&#x2013; Acquisitions&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2025 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On March 28, 2024, Descartes acquired all of the shares of OCR Services, Inc. (&#x201c;OCR&#x201d;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$82.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before March 28, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On April 19, 2024, Descartes acquired substantially all of the shares of Aerospace Software Developments (&#x201c;ASD&#x201d;), a leading provider of global trade compliance solutions and content. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$62.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (EUR &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;58.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million), net of cash acquired, which was substantially paid at closing from cash on hand with the remaining &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million paid in the fourth quarter of fiscal 2025. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April 19, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On June 10, 2024, Descartes acquired all of the shares of BoxTop Technologies Limited (&#x201c;BoxTop&#x201d;), a leading provider of shipment management solutions for small- to mid-sized logistics services providers. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$12.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (GBP &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;9.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was nominal with a nominal fair value at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June 10, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On September 17, 2024, Descartes acquired all of the shares of Assure Assist, Inc., doing business as MyCarrierPortal (&#x201c;MCP&#x201d;), a leading provider of carrier onboarding and risk monitoring solutions for the trucking industry. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$22.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on MCP achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent consideration was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was nominal with a nominal fair value at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before September 17, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On October 11, 2024, Descartes acquired all of the shares of Sellercloud LLC and certain assets of Sellercloud Europe Ltd. (collectively referred to as &#x201c;Sellercloud&#x201d;), a leading provider of omnichannel ecommerce solutions. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$110.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$20.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on Sellercloud achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent consideration was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$5.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before October 11, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the businesses acquired during fiscal 2025, we incurred acquisition-related costs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the year ended January 31, 2025. The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the year ended January 31, 2025, we have recognized revenues of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$36.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, and net income of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, from OCR, ASD, BoxTop, MCP and Sellercloud since the date of acquisition in our consolidated statements of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 8pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The preliminary purchase price allocation for businesses acquired during fiscal 2025, which have not been finalized, is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Seller-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;OCR&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;ASD&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;BoxTop&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;MCP&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;cloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, net of cash acquired related to OCR ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5,743&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), ASD ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2,475&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), BoxTop ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,012&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), MCP ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2,105&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and Sellercloud ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;362&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82,849&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,111&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 22,508&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 110,214&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 290,204&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,679&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,364&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 7,043&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments (receivable) / payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (19)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (217)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 196&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 248&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 83,013&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,646&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,092&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,970&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115,774&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 297,495&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,669&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,445&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 58&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 933&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,122&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Right-of-use assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 186&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other long-term assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 25&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (906)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,108)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (488)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,160)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (437)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (4,099)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (11,145)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (330)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (454)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,816)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (236)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (13,981)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (59)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (186)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (245)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (13,107)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,319)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,743)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (18,169)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (20,399)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (306)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,626)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,959)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 265&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (26,025)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 24,200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,247&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,926&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,300&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,573&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;25,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,377&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,944&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;8,300&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 25,200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 76,821&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,500&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 298&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 25&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 250&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,223&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 600&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 426&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 76&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,112&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;35,604&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;7,747&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,429&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;72,059&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;180,951&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 83,013&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;62,646&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;12,092&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,970&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;115,774&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;297,495&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, &#x201c;Business Combinations&#x201d;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one year from the acquisition date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;OCR&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;ASD&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;BoxTop&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;MCP&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Seller-cloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;8 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;10 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_N7pYUxv4gkKjaFXQZFbtjA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;-&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The goodwill on the OCR, ASD, BoxTop, MCP and Sellercloud acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the OCR, ASD and BoxTop acquisitions are not deductible for tax purposes. The goodwill arising from the MCP and Sellercloud acquisitions are deductible for tax purposes.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2024 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (&#x201c;GroundCloud&#x201d;), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$136.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$80.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on GroundCloud achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent consideration was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$19.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2024 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On April 20, 2023, Descartes acquired substantially all of the assets of Localz Pty Ltd.(&#x201c;Localz&#x201d;), a cloud-based customer engagement platform for day-of-service interaction and order management. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$5.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal.&lt;/span&gt; &lt;span style="font-family:'Verdana';"&gt;The purchase price was finalized in the three month period ended April 30, 2024 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The final purchase price allocations for businesses we acquired in 2024 are as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Ground-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Cloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Localz&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, less cash acquired related to GroundCloud (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4,381&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and Localz (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;Nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 136,843&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,857&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments (receivable) / payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 458&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 453&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 156,851&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,852&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 162,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 619&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,864&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Right-of-use Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,308)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (227)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,535)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (136)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,465)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,601)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (144)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (144)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (199)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,073)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,272)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29,400&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29,400&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42,800&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,971&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 48,771&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82,750&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 954&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 83,704&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 156,851&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,852&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 162,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-family:'Aptos Narrow';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;GroundCloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Localz&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;The goodwill on the GroundCloud and Localz acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the GroundCloud and Localz acquisitions is deductible for tax purposes.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2023 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#x201c;NetCHB&#x201d;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$38.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$60.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on NetCHB achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent considerations was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$13.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2023 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On April&#160;21, 2022, Descartes acquired substantially all of the assets of Foxtrot,&#160;Inc. (&#x201c;Foxtrot&#x201d;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;nominal. The purchase price was finalized in the three month period ended April 30, 2023 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On June&#160;3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#x201c;XPS&#x201d;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$61.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$75.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on XPS achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_wLzvF18aMkSoqfV2k_2U7A;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&#160;years&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent consideration was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$9.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended July 31, 2023 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On January 5, 2023, Descartes acquired all of the shares of Tran-Soft, LLC, doing business as Supply Vision (&#x201c;Supply Vision&#x201d;), a provider of shipment management solutions for North American Logistics Services Providers. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$11.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on Supply Vision achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent consideration was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2024 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;The final purchase price allocations for businesses we acquired in 2023 are as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Supply&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Vision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, less cash acquired related to NetCHB (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$658&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), Foxtrot (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;Nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), XPS (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3,932&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and Supply Vision (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$413&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38,664&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,096&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 11,573&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115,561&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,948&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,425&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,670&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,043&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments payable (receivable)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 66&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,099&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,294&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,499&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,247&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 469&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 835&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,449&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 718&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (367)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (22)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,483)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (532)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,404)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (336)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,196)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (132)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,664)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 477&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,230)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 54&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (597)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,500&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 22,150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,640&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 20,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40,440&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 194&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,527&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,529&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,763&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 78,616&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,294&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,499&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,247&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Supply&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Vision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;11 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;11 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;9 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The goodwill on the NetCHB, Foxtrot, XPS and Supply Vision acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot, XPS and Supply Vision acquisitions is deductible for tax purposes.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Pro Forma Results of Operations (Unaudited)&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired Sellercloud, MCP, BoxTop, ASD, OCR, Localz, GroundCloud, Supply Vision, XPS, Foxtrot and NetCHB as of February 1, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of Sellercloud, MCP, BoxTop, ASD, OCR, Localz, GroundCloud, Supply Vision, XPS, Foxtrot and NetCHB occurred at February 1, 2022, or to project our results of operations for any future period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 675,556&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 626,643&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 581,614&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 142,171&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 107,548&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 90,488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.26&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.07&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.63&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.05&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_3_28_2024_To_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_qO0C59RyfUGntyxTK08Arw"
      decimals="-5"
      id="Narr_fuBkEsc7T0m18B1grhLADQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">82800000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA"
      decimals="-5"
      id="Narr_XH1uzDuFqEyNp5J-OnRnqw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA"
      decimals="-5"
      id="Narr_vEdY4U3MSk2EYFVP4SvfKA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3900000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_3_28_2024_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_u5aZFy4wT0WbEIAciSdZMA"
      decimals="-5"
      id="Narr_DKoqPBpB60KmlE2DJuLHFg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">800000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw"
      decimals="-5"
      id="Narr_HYJLezori0uv_vqfDdkCtw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">62500000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw"
      decimals="-5"
      id="Narr_qEc23XcuNE-1kSeHbpKabw"
      unitRef="Unit_Standard_EUR_4XGw_XmhwUmxX-nBeOzlPg">58700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentForContingentConsiderationLiabilityInvestingActivities
      contextRef="Duration_4_19_2024_To_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_AReNBavOcEa4dZwfMx56aw"
      decimals="-5"
      id="Narr_8qDCzVSBykyljuj5uaihuw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3600000</us-gaap:PaymentForContingentConsiderationLiabilityInvestingActivities>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_NwssJ3aKYU64tE1PhpR_FA"
      decimals="-5"
      id="Narr_xPpOK193nUai9O3cxRrmMg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1100000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_4_19_2024_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_NwssJ3aKYU64tE1PhpR_FA"
      decimals="-5"
      id="Narr_iQKL0EVABU-fKEm9USk8Ww"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1100000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_6_10_2024_To_6_10_2024_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_NmAG3hWJgEeJ0pSB-Rl8Ug"
      decimals="-5"
      id="Narr_z2zMm3DW-UWseM6RB1EcNg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12100000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_6_10_2024_To_6_10_2024_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_NmAG3hWJgEeJ0pSB-Rl8Ug"
      decimals="-5"
      id="Narr_5FltmhuySkWtqGDtWUNf9g"
      unitRef="Unit_Standard_GBP_P5WfE-ByI02morAY7qIWwg">9500000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_9_17_2024_To_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_tvYOfTRE_Ue2DvczmmkSfA"
      decimals="-5"
      id="Narr__KZ38l-isEOQQSIV5hKBYg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">22500000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_Ik-ljJBmHEWPxs--p8xxBw"
      decimals="-5"
      id="Narr_jPzYCfrASkCWkUY6YNWFXw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_9_17_2024_To_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_tvYOfTRE_Ue2DvczmmkSfA"
      id="Narr_IfLdL4kwlkWSzadJbpxyPg">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_9_17_2024_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_Ik-ljJBmHEWPxs--p8xxBw"
      decimals="-5"
      id="Narr_DbyXGtNzakGU0a31Dy9sLw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1700000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_10_11_2024_To_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_HO5D11lrBkmYPtX-53M1_A"
      decimals="-5"
      id="Narr_sFilMzk4D0WuZh3qEiVM9w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">110200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA"
      decimals="-5"
      id="Narr_QjBISRgLHUKrDMRLQhOAXA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">20000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_10_11_2024_To_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_HO5D11lrBkmYPtX-53M1_A"
      id="Narr_ITAjfsAHaE-MmvrJIYpXHA">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA"
      decimals="-5"
      id="Narr_7rqhX76lYUegFNLw3Tb5pw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA"
      decimals="-5"
      id="Narr_8-qSAok6J0e1r30L3FY7Cg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000.0</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_10_11_2024_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_NPWhqo44q0mEPwFZ2BaOfA"
      decimals="-5"
      id="Narr_1jxX3GKCK0uHIyW_eorDSg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000.0</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA"
      decimals="-5"
      id="Narr_-AWZ5iw2ykKzq-GG0EWKvg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4800000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA"
      decimals="-5"
      id="Narr_Ygn6f18Eq0a1gcAUnCcdlg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">36400000</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2025AcquisitionsMember_urQ0_UtFCkatcgcAyEd4AA"
      decimals="-5"
      id="Narr_hk3JWwNpf02UEAQYrQQI0A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6600000</us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Group_ScBa0tLOqEal3kE6yJWf6Q">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Seller-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;OCR&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;ASD&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;BoxTop&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;MCP&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;cloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, net of cash acquired related to OCR ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5,743&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), ASD ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2,475&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), BoxTop ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,012&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), MCP ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2,105&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and Sellercloud ($&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;362&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82,849&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,111&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 22,508&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 110,214&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 290,204&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,679&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,364&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 7,043&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments (receivable) / payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (19)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (217)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 196&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 248&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 83,013&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,646&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,092&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,970&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115,774&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 297,495&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,669&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,445&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 58&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 933&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,122&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Right-of-use assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 186&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other long-term assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 25&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (906)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,108)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (488)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,160)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (437)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (4,099)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (11,145)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (330)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (454)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,816)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (236)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (13,981)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (59)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (186)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (245)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (13,107)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,319)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,743)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (18,169)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (20,399)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (306)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,626)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,959)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 265&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (26,025)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 24,200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,247&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,926&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,300&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,573&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;25,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,377&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,944&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;8,300&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 25,200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 76,821&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,500&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 298&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 25&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 250&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,223&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 600&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 426&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 76&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,112&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;35,604&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;7,747&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,429&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;72,059&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;180,951&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:41.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 83,013&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;62,646&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;12,092&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,970&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;115,774&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;297,495&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Ground-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Cloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Localz&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, less cash acquired related to GroundCloud (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4,381&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and Localz (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;Nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 136,843&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,857&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments (receivable) / payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 458&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 453&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 156,851&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,852&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 162,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 619&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,864&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Right-of-use Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,308)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (227)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,535)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (136)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,465)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,601)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (144)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (144)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (199)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,073)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,272)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29,400&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29,400&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42,800&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,971&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 48,771&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82,750&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 954&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 83,704&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 156,851&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,852&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 162,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Supply&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Vision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, less cash acquired related to NetCHB (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$658&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), Foxtrot (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;Nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), XPS (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3,932&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and Supply Vision (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$413&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38,664&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,096&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 11,573&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115,561&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,948&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,425&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,670&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,043&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments payable (receivable)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 66&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,099&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,294&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,499&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,247&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 469&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 835&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,449&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 718&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (367)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (22)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,483)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (532)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,404)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (336)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,196)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (132)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,664)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 477&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,230)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 54&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (597)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,500&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 22,150&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,640&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 20,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40,440&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 194&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 200&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,527&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,529&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,763&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 78,616&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:53.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,294&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,499&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,247&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,703&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"
      decimals="-3"
      id="Narr_qOV6HFWt-02mrMoaNagkAA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5743000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"
      decimals="-3"
      id="Narr_P5AZltdxj0eI82VV5pnSXA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2475000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"
      decimals="-3"
      id="Narr_MN7LmB2jFkyGTPvIjAgDqg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1012000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Narr_Tkjh_m6LdEemWW5oZTG3aA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2105000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Narr_N80irs2UN0uEtrO6BQSi1Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">362000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"
      decimals="-3"
      id="Tc_cTGPBuKhfUmrWSbgo6DPaw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">82849000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"
      decimals="-3"
      id="Tc_gFC5hTNu_kqK7ILU-yVaSg_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">62522000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"
      decimals="-3"
      id="Tc_vxE7B1m_N06qjK2Lj-XfbA_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12111000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Tc_ol6mYDeH_ESLiwT-wOsCHw_4_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">22508000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Tc_TT6oQ_ZeJUK6DNFaidEIzg_4_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">110214000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_bxtzQE7NwkCtU64LT_CNig_4_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">290204000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Tc_I7QuD4rYd0yOr0IpX1TXGg_5_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1679000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Tc_qNJYZO-gl0aO-hBP2oReMQ_5_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5364000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_7BoLl3Ud7UOfM9PsB7OIFg_5_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7043000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"
      decimals="-3"
      id="Tc__W5eztvE6UeaALcAdrXAAw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">164000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"
      decimals="-3"
      id="Tc_gjaw75c1LEKP6obuFFuvfA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">124000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"
      decimals="-3"
      id="Tc_hJkZalxcTEKOcARvBeOl6A_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-19000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Tc_AbLyagI7_kmRv7j67S4MFg_6_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-217000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Tc_CtLUy3iBukGZFkATVN-XZA_6_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">196000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_D9zjasUQb0a0Zbjwte9SWQ_6_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">248000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"
      decimals="-3"
      id="Tc_uGRAVLMZfkWKl87BYlgyHw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">83013000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"
      decimals="-3"
      id="Tc_ryji4LffIEOVcBLrWD90EA_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">62646000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"
      decimals="-3"
      id="Tc_JbbgX40wbkG3vDy1CCDEWw_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12092000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Tc_-rsM88cdck-y_E0842IrhA_7_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">23970000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Tc_cTAvnykuFkGXA_YEl6FM4g_7_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115774000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_OSubnlz6qEudXGC2JU5vbg_7_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">297495000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_PNutVdofrEqJUQrgnf5dBQ_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4669000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_63p9aQPByEOdCIp6h4tZuw_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4445000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_hvuW2QL72UioVxyI13G_ag_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">58000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg"
      decimals="-3"
      id="Tc_TiXqzqNr0Ua_IqedB_BEUg_9_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">17000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"
      decimals="-3"
      id="Tc_xAIV0zhPVEqK0aVkBXEfKw_9_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">933000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Ov6GnI42yE-rvmPwjEP3TQ_9_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">10122000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_Xzj2rrN7TkSDSS43746E-g_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">77000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_mRl7GVn76km6VHCUBeyFwg_10_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">77000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_ON8cG33eaEOmTCQynf8mbA_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">59000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_eYe7oNzNI0-sGsN0ptArjg_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">186000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Miu69NSGS06zc-nkrcRPBg_11_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">245000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_sONmXpvXS0m6ldmjA8anUw_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_AXUcTD5xHE2P1jeBCiIflA_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_9Qqu6CEzSUGTOD-m6ho-7g_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"
      decimals="-3"
      id="Tc_cyAROklbUUCcy7YB8sbmhg_12_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_KQ2MAfpNz0SBSxOktaQGfg_12_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">25000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_Fcuz5VrpSUK4xT2tS0W1dg_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">906000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_Un0D7LDZb0iclqxY_aQH5A_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1108000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_bdde3cjumkeKHLBJvQvlTg_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">488000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg"
      decimals="-3"
      id="Tc_zy_HOnx1HUaMaw1Tg9g8rw_13_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1160000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"
      decimals="-3"
      id="Tc_tnso9nP42E2rTGtWEKpbRQ_13_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">437000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_b42el-J_hkKKnXS8yz5Qzw_13_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4099000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_gHzwzMBmhEytZ8hOHnAP0Q_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11145000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_1I3qHhDJo0K_LTqk1mnZkw_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">330000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_haNcXWzp-EGQbt-1yY2xAg_14_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">454000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg"
      decimals="-3"
      id="Tc_2g0l0G3kb0eDqe_5xo-9-A_14_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1816000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"
      decimals="-3"
      id="Tc_kooNozE8dEyndapU2AgYqA_14_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">236000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_3n94X0HbfUWwaqr57mi-sQ_14_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13981000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_qgVpyoUCCky3aXyb3PxSxQ_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">59000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_BE1i0Zw_hkyrS4YS631WkA_15_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">186000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_7f4HXHO7GkGzRQUAKWNgtA_15_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">245000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_7Zj8CblwkEuLQSS_DtzAyQ_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13107000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_IFvKOXQxDkqW8vMNF2QRSQ_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3319000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_Uw2Jx2-rnU2NcMLUHZvqOw_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1743000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_TpPhs_NS4E6157ODRyss-w_16_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">18169000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_UfS9zbA_uE20isIe4n122Q_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-20399000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_NOJ_Vz8kR067Ct47DkoinA_17_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-306000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_BtKv6Fux5E-Tj84cE23Kjg_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-2626000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg"
      decimals="-3"
      id="Tc_Xz8QWePcNES8bCv8R9h9VA_17_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-2959000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"
      decimals="-3"
      id="Tc_gWIe4P5aFk6xUPKVejK51g_17_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">265000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_vdN4mLjirUK8ui5LrMvzOg_17_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-26025000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SsZT58bRBk6BzNnQmkJmyA"
      decimals="-3"
      id="Tc_BcbBn7Hj90em3UA68Xw27A_20_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">24200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0Kq6hqNILUmlfqshIwUHMQ"
      decimals="-3"
      id="Tc_grpaSRnY0kOgU4ABrgSknQ_20_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12247000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_5MSFaGBI9UGu5fXTYBD4nA"
      decimals="-3"
      id="Tc_hs_45FUIY0KQoKJOGPhaBw_20_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2926000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_eFKjrCbcpkaWku185-sRjA"
      decimals="-3"
      id="Tc_U1FgT-kxUUu8xAGRcoIc4g_20_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_g4CApCNFVE6TfIIl8jGYFA"
      decimals="-3"
      id="Tc_0lziKrSKakylLglNaes2_A_20_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">17300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w"
      decimals="-3"
      id="Tc_DDC0Hz1Gy0Gh41GKq__2jA_20_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">61573000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IzQBwPmnHU6N_p_6XWnt-Q"
      decimals="-3"
      id="Tc_hGylky_q40G7UGhzIIUD5g_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">25000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_aRdPuNoY_06Z6fS24w-e4A"
      decimals="-3"
      id="Tc_RpkWLQxQEkaCOxM8VxT5YQ_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14377000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_1ur_H23L706TLsvzHVdEsg"
      decimals="-3"
      id="Tc_eDXKXMl8skCYZuNVbMFDJA_21_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3944000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_fqKkKZezdUqFRmpGKzzAcw"
      decimals="-3"
      id="Tc_E8A0Iozgl0-K1B2kgv5ddg_21_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_VWsK_JPkokicMxUL9BIFqw"
      decimals="-3"
      id="Tc_XiB-aYmbQ0eJnQ_iwpxnLA_21_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">25200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_OrOo0RIN7kauNnvO1P4SOQ"
      decimals="-3"
      id="Tc_enmXvUI3sk22Us8OGgLA-A_21_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">76821000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_FX1znndwu0eKx-NYNlEz9A"
      decimals="-3"
      id="Tc_qv5FUSoXS0Wsk2DTZ1u9fA_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1500000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_UFano2ye40CbdnSgLQufyA"
      decimals="-3"
      id="Tc_Cf8WwK7lVUWIlUyLIvNHTQ_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">298000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XAgRkcyW0ku4ndq0OvJQRQ"
      decimals="-3"
      id="Tc_O9LN-rbnJUibfIp1o6vDKw_22_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">25000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_oRagQpsYDkOTg7Mf_HaBUQ"
      decimals="-3"
      id="Tc_BSPfXe94P0arrj_rFBuXUQ_22_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">150000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_4Zxf9mU-iUaqJqOl_UCYDw"
      decimals="-3"
      id="Tc_UMvPrT6CMkuxShBDGcZEuA_22_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">250000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA"
      decimals="-3"
      id="Tc_1Ugkt4HnE028rDb177UUVA_22_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2223000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_WiXfedSYykGt5cV4iApCxA"
      decimals="-3"
      id="Tc_M1RfdJWDwEaCNYDm4qr56A_23_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_MSEXOfvBHEO1MbnoTetL_g"
      decimals="-3"
      id="Tc_nHT-nEitekqnPbVsbDWkDQ_23_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">426000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_BFhMvP_QH0ittuKAN28dFA"
      decimals="-3"
      id="Tc_VVLAR-Og5ES-p6ICm97nIg_23_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">76000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LL6k8xs0iUOY5Myd1LnLHw"
      decimals="-3"
      id="Tc_Inyk8eycq0CGHWq0d3ncdw_23_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">150000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NCNRFy-nNEip4dbUH0Qbyg"
      decimals="-3"
      id="Tc_WJafOjgAGUKgTfTX7tRjvg_23_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg"
      decimals="-3"
      id="Tc_1_rNBHxfl0iG_TzOkW39EQ_23_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1952000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_Ri0AGzCHT0uJkdl29abo5w"
      decimals="-3"
      id="Tc_sf5NN25aPU-xTqjdPauzjg_24_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">52112000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_Nq4yUWYO6ECksdFOrviQoQ"
      decimals="-3"
      id="Tc_cMrH13LhgESEgss68quW5A_24_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35604000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_Q0VbyK4XfEGUmNSa2hLnBw"
      decimals="-3"
      id="Tc_cUOp8xYzaEybKW0-ByUA3A_24_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7747000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_pfRVSaJKEE-1ifLBdtcjqg"
      decimals="-3"
      id="Tc_coaNCCrDekKoKp9AsrUwjw_24_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13429000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_k_1n2NUyVEiSAxoUSROl2Q"
      decimals="-3"
      id="Tc_j4E2nbgfvEumpUkVkndlkA_24_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">72059000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Id7NLW7k5kSoFI5gceMItA_24_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">180951000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"
      decimals="-3"
      id="Tc_GHSQ9N708kO5T294ozW1QA_25_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">83013000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"
      decimals="-3"
      id="Tc_PRncjyeAH0GVE-9l0yCW-A_25_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">62646000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"
      decimals="-3"
      id="Tc_F9l_NJ6J7Um-r0W2ROZDQA_25_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12092000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Tc_MBAokqNojkqlnrBGXemkFQ_25_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">23970000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Tc_If02Kh6Xm0uupFP-jQvy7A_25_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115774000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_8G3BIygn70C2Ilni39D4iA_25_12"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">297495000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Group_oSrT3-IdkkK_3w6Mv7BJ1g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;OCR&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;ASD&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;BoxTop&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;MCP&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Seller-cloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;8 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;12 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;10 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_N7pYUxv4gkKjaFXQZFbtjA;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;-&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;3 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:43.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.8%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-family:'Aptos Narrow';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;GroundCloud&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Localz&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Supply&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Vision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;11 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;11 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;9 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_SsZT58bRBk6BzNnQmkJmyA"
      id="Tc_mVXbdJQifkmZfNskOrEPwQ_2_2">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0Kq6hqNILUmlfqshIwUHMQ"
      id="Tc_IvGRO8-e3kKYlM0CvaMQ_Q_2_4">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_5MSFaGBI9UGu5fXTYBD4nA"
      id="Tc_t2D40fHxyUmnrhrzZ23xOQ_2_6">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_eFKjrCbcpkaWku185-sRjA"
      id="Tc_UL8gZEBIIUCPjsUjLz_l9A_2_8">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_g4CApCNFVE6TfIIl8jGYFA"
      id="Tc_GG0IEwYwI0S_PAGiZ1L7Zg_2_10">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IzQBwPmnHU6N_p_6XWnt-Q"
      id="Tc_qbc5mqGIzkyum3MqXtxzjA_3_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_aRdPuNoY_06Z6fS24w-e4A"
      id="Tc_yDY0nVbLLk6CZN9DYOQfyQ_3_4">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_1ur_H23L706TLsvzHVdEsg"
      id="Tc_-FnyqkC040-i2N062YfG-w_3_6">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_fqKkKZezdUqFRmpGKzzAcw"
      id="Tc_Roqi5Hqk1k6Lm81YT3ar0Q_3_8">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_VWsK_JPkokicMxUL9BIFqw"
      id="Tc_fbqEOhD7sU619bZenh3Org_3_10">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_FX1znndwu0eKx-NYNlEz9A"
      id="Tc_b5iEvE4R10ynLxrjZpHfVQ_4_2">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_dp8aGXVQEEKS4bMfY0OyLQ"
      id="Narr_-S1PVrpYqU2_Ga1Pi8FxZg">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XAgRkcyW0ku4ndq0OvJQRQ"
      id="Tc_Qw1aIVBwckCEeNr3r1ndyA_4_6">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_oRagQpsYDkOTg7Mf_HaBUQ"
      id="Tc_y1vFoYHyckOqOcU55l2uig_4_8">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_4Zxf9mU-iUaqJqOl_UCYDw"
      id="Tc_xi5y9m-8Pkmb1UI4_X8PYg_4_10">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_WiXfedSYykGt5cV4iApCxA"
      id="Tc_ztm8kKZnxEeymf3UU4Xx1A_5_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_MSEXOfvBHEO1MbnoTetL_g"
      id="Tc_QMrAKcQWeUW3SpAdl1_2UQ_5_4">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_BFhMvP_QH0ittuKAN28dFA"
      id="Tc_JlyAYUUoJ0Oxe1W1EnsVBA_5_6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LL6k8xs0iUOY5Myd1LnLHw"
      id="Tc_iT-7idHR5UOT5ry696MJ8A_5_8">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NCNRFy-nNEip4dbUH0Qbyg"
      id="Tc_1qqsTs6Z6EKOvYuYUMlHwg_5_10">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_6vkXrDOz9UGLGWWNWYa_sw"
      decimals="-5"
      id="Narr_8kk6KiC9Y0yDPwryTTZe6A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">136800000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA"
      decimals="-5"
      id="Narr_7fPnl2x90UO9TE11uPqgBQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">80000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_6vkXrDOz9UGLGWWNWYa_sw"
      id="Narr_v2MWC5x0rUCDiFmtJJzxJQ">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA"
      decimals="-5"
      id="Narr_ZFwSksob1UCA_C-f0unKbA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19600000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA"
      decimals="-5"
      id="Narr_hfayOIv7jk-f4z7T5PHrYA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1500000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_BmWJtBbvbkeI46otm0z_jA"
      decimals="-5"
      id="Narr_xrm_9N9TVUikw18yWzNkDg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1500000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_4_20_2023_To_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_o7F5xmIUe0ePgrT_fYZavg"
      decimals="-5"
      id="Narr_kqCTTCl7IE2cPWqDlzqWZA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5900000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_7JM72RJ0g0-3O0q3iKl4Vg"
      decimals="-5"
      id="Narr_w-fO6RaFj0Sxal0MRbZ8OA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">600000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_4_20_2023_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_7JM72RJ0g0-3O0q3iKl4Vg"
      decimals="-5"
      id="Narr_VkjjFFkGSUixnqHNyJTB4w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">600000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Narr_oiTwzXI4PUem7SGxabyFUA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4381000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"
      decimals="-3"
      id="Narr_noAfR_NEP0y9X102prwrJg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Tc_3D6luJtf6UyxThXLkJeMbQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">136843000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"
      decimals="-3"
      id="Tc_U-0S2FnOTk-aJ-m5J7nnXw_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5857000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_OXnBRqzrcU6rCu8TYE49hw_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Tc_5kA6z16p0UGSvhRE8v5pqA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19550000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_2Cfh1oFOTU24-mL5UaOCRw_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19550000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Tc_rj3qRAuyj0SXx9ILF9fYIw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">458000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"
      decimals="-3"
      id="Tc_p2ChihO_00ilG6jmqNzNmQ_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_q3dItbiqQkG21wXRUwdbKw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">453000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Tc_qemFESjlvUi1BhJg29gfCg_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">156851000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"
      decimals="-3"
      id="Tc_mU5MW33jEUqogGR5_eawaA_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5852000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_doGwvg_HhEChoGrbT8iwVA_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">162703000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc_g-aSrVUWfUmLTfkZqzl8fQ_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3245000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg"
      decimals="-3"
      id="Tc_PbTc-iMdrEaNBGgDbZOMBA_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">619000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_5BDlzKqUgEGripQ172zmYw_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3864000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc_dIMP-v1l60mo1tuzY1lV2A_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">144000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_KwJpD2NWHUmglLu8tG9bLQ_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">144000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc_VShzjvVsy0Gy0y8FtJh5AA_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3308000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg"
      decimals="-3"
      id="Tc_f7OehmGo-Ei1zYcLZj-JrQ_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">227000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_DPmu_DumIke9C8YEN2L0fw_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3535000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc__oUTL_jy40O2G4Ro12an4w_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">136000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg"
      decimals="-3"
      id="Tc_9BQZZaBKnUyQXfnxkijUVw_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1465000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_7a-sEoxP4kGPUO-V5WtUkQ_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1601000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc_JE8-5KpQkkqs4kIeRF_-Og_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">144000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_z8fHiU3bk0OrOngqjMB6oA_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">144000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc_rEWWZePYPUKJZkk_xHJ6uw_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-199000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg"
      decimals="-3"
      id="Tc_OOwkoLLMpk6L9p4l4bQKgg_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1073000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_0Z8MBUUGlEi6QkUqueXCkw_14_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1272000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_22pwhlNQFU660crmwXHk8Q"
      decimals="-3"
      id="Tc_xQhs54QP40iB9Ev5-EKAYw_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">29400000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA"
      decimals="-3"
      id="Tc_9z3KbJaiN06s8sjpPnQrIg_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">29400000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_FlB4_ErBXUKA1rZyTh8w6A"
      decimals="-3"
      id="Tc_oA8Etl7sN06P74CLzODXMg_18_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">42800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_MdF6hTdL3EecK7y62_QGfw"
      decimals="-3"
      id="Tc_1Gg0CvbErESIDzAlfFq0XQ_18_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5971000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_xyzUOHeSHUyQtEli-A8I0Q"
      decimals="-3"
      id="Tc_rStq8nU8q02MOqBmyUt3tw_18_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48771000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WxgGCSJgX0aN52PyEaAtWw"
      decimals="-3"
      id="Tc_dfb-SljvyEGAe43fujgzPQ_19_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA"
      decimals="-3"
      id="Tc_qlh1bD9SSES6wBhpK9L05Q_19_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NjsJk_WEiUqEBzTApzglAg"
      decimals="-3"
      id="Tc_YXKbSbazkUelCakctyVGuw_20_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag"
      decimals="-3"
      id="Tc_QurvfMQLpUm5IMfE3qHzbQ_20_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember__NkPSk8NWUmyyURd43Vvcw"
      decimals="-3"
      id="Tc_83jFJTECUUK8T5DNI7nmTA_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">82750000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_20XY0HxN7EuAiGI7sSj7Qg"
      decimals="-3"
      id="Tc_aMJPiobXc0ydh3I-sC78Pg_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">954000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_4ulPolqWZESh3NY1-O-q_g_21_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">83704000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Tc_Y6UnU08fU0qPbEFP7RnP0g_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">156851000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"
      decimals="-3"
      id="Tc_YCPINUzodEyqdxuKwad2nQ_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5852000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_fkXANnuJbU6g4EQ8SuCBKg_22_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">162703000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_22pwhlNQFU660crmwXHk8Q"
      id="Tc_M3b5AYRei0mKx0WGD4rjoQ_2_2">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_FlB4_ErBXUKA1rZyTh8w6A"
      id="Tc_aMSL1E72nkKZWVLExaFqjA_3_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_MdF6hTdL3EecK7y62_QGfw"
      id="Tc_w1Ey1AcKbUa18zAi29YMGw_3_4">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WxgGCSJgX0aN52PyEaAtWw"
      id="Tc_sPBGewrxVUaChB0K8-73pQ_4_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NjsJk_WEiUqEBzTApzglAg"
      id="Tc_WtyUaVdcxEGAVh-GjQwp3w_5_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JD05O5TIF0WBwBI7YRZTow"
      decimals="-5"
      id="Narr_FyRUOhI-ekuYXpiz_B7Ugw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">38700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA"
      decimals="-5"
      id="Narr_6RXlM2r7aU2XIrnR43iQRA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JD05O5TIF0WBwBI7YRZTow"
      id="Narr_1yobxHQSMU2a-v37dX15Vg">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA"
      decimals="-5"
      id="Narr_GVSD3EqC1ka1FuBeT03e0A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13900000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA"
      decimals="-5"
      id="Narr_gvUG1UAeY0-muq-afsC6dg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">100000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_xTJcF5QSPEyxgmbfs891cA"
      decimals="-5"
      id="Narr_w4Nv6KLsa0SviOQ9yl6D3A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">100000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_gR--3dPXjUqawPWHxblafw"
      decimals="-5"
      id="Narr_ZpRUEcKCXUKbHf2tAYp2Wg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_mUyA6OhXH0izkqzqdHOlfw"
      decimals="-5"
      id="Narr_B_0-X6keFEOC2yIzcpb59g"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_mUyA6OhXH0izkqzqdHOlfw"
      decimals="-5"
      id="Narr_ROEei1nMYE2EOyRTQfIqUw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">700000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_ejOpE2bBH0yIbjoqBg6D5A"
      decimals="-5"
      id="Narr_-OaUQ4aybk2qcgdmUD2ymg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">61100000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q"
      decimals="-5"
      id="Narr_fodd054SuUajvOA4mUlQSw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">75000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q"
      decimals="-5"
      id="Narr_RZtApaLkO0iB6f5OtoaaWQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q"
      decimals="-5"
      id="Narr_gsWzjSHRJEGHv7-oBYH-Cg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1500000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_yQL17mZe_UiqHsSz1CH7-Q"
      decimals="-5"
      id="Narr_bTm3A1x_PUKBSZ_M57h_sw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1500000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_1_5_2023_To_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_KsaVe4hx50-16OKx7jq0Uw"
      decimals="-5"
      id="Narr_TxbC4bcqmU6sk85ZGbbb5g"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11600000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ"
      decimals="-5"
      id="Narr_nS28SXWShEy0dSdBQSjb6w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_1_5_2023_To_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_KsaVe4hx50-16OKx7jq0Uw"
      id="Narr_aOg8QdXHuEe6IbLCLtScfw">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ"
      decimals="-5"
      id="Narr_KfKjBRmGlUWUb5huzIJPZg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2700000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ"
      decimals="-5"
      id="Narr_1D34TCCeok-3UNE-pIZsJA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">300000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_1_5_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_VKlB_evYGUiTZFk0xMBFPQ"
      decimals="-5"
      id="Narr_uIf6-boqbUSLpkAy3W6llA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">300000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"
      decimals="-3"
      id="Narr_nrq-S7M7tUS77kJ13m2AFg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">658000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew"
      decimals="-3"
      id="Narr_Aq-ZBYyVBEi6I3Ie_DKC5A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"
      decimals="-3"
      id="Narr_R2gUrfQFbU-wc_ka7IEjlA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3932000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"
      decimals="-3"
      id="Narr_47vezVxsZE6M1dkgltT1Bg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">413000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"
      decimals="-3"
      id="Tc_aOHmmIC-70WLGG3U-8uLOQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">38664000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew"
      decimals="-3"
      id="Tc_qKAO4aI6TkyNbdpLwT5m_w_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4228000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"
      decimals="-3"
      id="Tc_Q1KNh3rI2E25vBpQdEsVmw_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">61096000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"
      decimals="-3"
      id="Tc_wwzXPhLevU-OxBN4itNdjA_4_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11573000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Zj68Rk9VDkiYEP9jmbxOxQ_4_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115561000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"
      decimals="-3"
      id="Tc_bsZvoQDHvEq8FVXXQ8b8YQ_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13948000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"
      decimals="-3"
      id="Tc_ywAMxgJJxkGnabUtSkI1Ig_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9425000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"
      decimals="-3"
      id="Tc_TOu_PRAfdkapK7IWz7IEtg_5_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2670000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_yKX_EV8aXk6ucy2kJAb68Q_5_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">26043000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"
      decimals="-3"
      id="Tc_j882ja2srUydP1D6suZGYw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">51000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew"
      decimals="-3"
      id="Tc_2R9KMgTuBkyFBauqtD3Dbg_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">66000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"
      decimals="-3"
      id="Tc_RxZCl7OvSkSB4pDcvBRGcw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">978000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"
      decimals="-3"
      id="Tc_cnlYQnIW4UaKigrBYbqVyA_6_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_F6mLC0rz-EWdwBWaAqcbKQ_6_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1099000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"
      decimals="-3"
      id="Tc_6p_OU-3f6kiduPFrgpZvgA_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">52663000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew"
      decimals="-3"
      id="Tc_0aSrsLqCLEWG6lp33b2eUg_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4294000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"
      decimals="-3"
      id="Tc_FKs4QdhzRkaBqJUbk01Ghw_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">71499000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"
      decimals="-3"
      id="Tc_nLpgnWked0SG3zQkqNrEKw_7_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14247000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_nCh1Yh2-mEWFlPoX4XFuoQ_7_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142703000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw"
      decimals="-3"
      id="Tc_1NoZmNdGykyy4dAqRAwaZQ_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">469000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg"
      decimals="-3"
      id="Tc_5Bn1cCx240OwgKq7C2_tYQ_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">835000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA"
      decimals="-3"
      id="Tc_D3xiow0JkUOYoZQoYbrH5Q_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2449000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q"
      decimals="-3"
      id="Tc_RJE6pCRyF0yhm4QpYRbW7g_9_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">718000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_rGLIjCpIjk-ZKEjjQSRcLg_9_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4471000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw"
      decimals="-3"
      id="Tc_cqQm_85WWUW4oMfR4m6AZA_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">367000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg"
      decimals="-3"
      id="Tc_qcwBNQdrUkC0XoVLGbascA_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">22000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA"
      decimals="-3"
      id="Tc_BgZpZtW11UWHtnUvXBJXYw_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1483000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q"
      decimals="-3"
      id="Tc_rfxmvYnQDECkmTV3jgjjlQ_10_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">532000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_1S1iGlCZ-UqPRU8WyeIGtw_10_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2404000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg"
      decimals="-3"
      id="Tc_PR1iE3iFqE6TdgUPBEFLRw_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">336000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA"
      decimals="-3"
      id="Tc_08SDmD50YU6OEJye__i4Gw_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2196000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q"
      decimals="-3"
      id="Tc_PZnGETAZLk-0qSZ3dheB3Q_11_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">132000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_mmHTx8d7Wk2JQGiAKHFemQ_11_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2664000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw"
      decimals="-3"
      id="Tc_3X950tgz9kGVMcYTjw5cZQ_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg"
      decimals="-3"
      id="Tc_ze_bgoKbhEetYThWQT2aPg_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">477000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA"
      decimals="-3"
      id="Tc_OFvD-nrKzUaZF94xqfcWUA_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1230000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q"
      decimals="-3"
      id="Tc_RqyMdp5gtESBKYl8ntVY6g_12_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">54000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_ynP_dXmtQ0Cj_gUeZar4_g_12_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-597000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kGPsY3Cz706PbJT6vHzIMw"
      decimals="-3"
      id="Tc_LJWvw36RR0KJkneYtAZvOA_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">10900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_KSsS8j-Tyk-gl6vx67nrzw"
      decimals="-3"
      id="Tc_Oc6hbkdlr0a665Va9U5D2w_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">650000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_jL5OdN2Qx0uhN7dNTDwzTw"
      decimals="-3"
      id="Tc_8OAP6yYemkOd0HpyDdmibQ_15_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_RllDwoMvQE6PCVKNw1VOqw"
      decimals="-3"
      id="Tc_iIbxVJ3jgkeEmtN5hWN7Dg_15_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2500000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kCn4xihjHkq1EEzRRRPyJA"
      decimals="-3"
      id="Tc_QTg2Bxh89UiCcdci6EDTEA_15_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">22150000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_3HI2fdXurUCIMe3KRuO2Zw"
      decimals="-3"
      id="Tc_NwYQ6bNR-EqcW20XmlTxLQ_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_jPSgcZEsR0OUVtGerst6xQ"
      decimals="-3"
      id="Tc_pG5oBq-Md0CliK2f6gg8ug_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1640000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_pC2FGINSs0CdHx3zVD1aAA"
      decimals="-3"
      id="Tc_rWQ9IeZzakiiRhJY5ZmGnQ_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">20000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_63poA6l9G0ad9z4BCgD5HQ"
      decimals="-3"
      id="Tc_hjBNBKgzdk60uy5YIh9mfg_16_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_BiCxeZxsFkWsGJKDAtmIaw"
      decimals="-3"
      id="Tc_SQahXuqXaUiTxv-mTUKZ8A_16_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">40440000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8ocP7kndg0u3Aie1GIadaA"
      decimals="-3"
      id="Tc_-D8xJEXHz02iymldZeJxIA_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">64000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fAekMMIVdkax2baAgeBTsw"
      decimals="-3"
      id="Tc_UxXqe5tYhkuAILJWYyFUVg_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JtJwhrRn5kGCxdbhc5gP-A"
      decimals="-3"
      id="Tc_b3KavRmPPEGnThoKSeDPCw_17_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">30000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ulAK44TzGEuOX1UW0y7_wA"
      decimals="-3"
      id="Tc_ppSmsdNN-0iWdbZw-_J1wQ_17_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">194000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_H_wy3UKvwUOrW3JWXZwJ8g"
      decimals="-3"
      id="Tc_IBkOjQDrMkafjLRJVseqtg_18_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_QnoBJTXEjUiI-WvDuNK09Q"
      decimals="-3"
      id="Tc_wBYvnov4vku3Gf1Tp_jTvA_18_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Y4Vr9kb6hkOULI_kBiL4hw"
      decimals="-3"
      id="Tc_KkrcUYI-4UiH88xAN96hpg_18_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2023_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_djdDJIBL50umyaxlozC1Uw"
      decimals="-3"
      id="Tc_EF-r6oonFEa3acH6WHAopg_18_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_py4d90mIWkKAdvldPjLNYw"
      decimals="-3"
      id="Tc_HRGsh5FW_kau4-yjjR5ewQ_19_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">26797000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_-xwHP76CAUeEkwScvhdAZg"
      decimals="-3"
      id="Tc_kOkmNnlQF027zATUVRQFkQ_19_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1527000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_U2Tty7Vw3EyMP761jCHxPA"
      decimals="-3"
      id="Tc_kSJvrwUEMkycE638z_eLPA_19_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">43529000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_B8PjX4AIhEq9HZzAUGEh-Q"
      decimals="-3"
      id="Tc_-msYiQEsx0KWnN9ervDpWg_19_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6763000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_MbXckTSR2kmB7SCT8unCbw_19_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">78616000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Kax097MddUuMLhpXp6JIaQ"
      decimals="-3"
      id="Tc_7wy4FFuZW0uSCjqC2nrovg_20_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">52663000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CJP7C3RHfUCP3-_f8ShKew"
      decimals="-3"
      id="Tc_QtT6qBehsUqGogJOunRQ-w_20_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4294000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_YSDBHfrjjkmIe_0fm8K4bg"
      decimals="-3"
      id="Tc_in8PK81m8kiYwp9rNKtFNw_20_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">71499000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember__T5rwjLsuk6Pu03frGPjhA"
      decimals="-3"
      id="Tc_sLiMwuiXM06A4A6F1NyK_g_20_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14247000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_XaXNbfcis0uGoa-llNg_hg_20_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142703000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_kGPsY3Cz706PbJT6vHzIMw"
      id="Tc_cwRKgNQ7AUuDG1zpHJlKBg_3_2">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_KSsS8j-Tyk-gl6vx67nrzw"
      id="Tc_ObmH-arjNUWKaR4LkpdJxA_3_4">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_jL5OdN2Qx0uhN7dNTDwzTw"
      id="Tc_R5TJokuDoUSGZZDo004epA_3_6">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_RllDwoMvQE6PCVKNw1VOqw"
      id="Tc_Dx8WrMIovkuyjHloAzYCCQ_3_8">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_3HI2fdXurUCIMe3KRuO2Zw"
      id="Tc_s1XgS6kqQEKE0xBC7C9rTg_4_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_jPSgcZEsR0OUVtGerst6xQ"
      id="Tc_onyVbo5JvkWotJbUjlB6vQ_4_4">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_pC2FGINSs0CdHx3zVD1aAA"
      id="Tc_O5jgVsNkrES5-LsmHPGlIQ_4_6">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_63poA6l9G0ad9z4BCgD5HQ"
      id="Tc_-LAHoFTBX0eNp6MsnbpzTQ_4_8">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8ocP7kndg0u3Aie1GIadaA"
      id="Tc_MIXugFbd50u_h5HukrZjQA_5_2">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_fAekMMIVdkax2baAgeBTsw"
      id="Tc_ScVbvwulvE2QA6J8YJWotw_5_6">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JtJwhrRn5kGCxdbhc5gP-A"
      id="Tc_Z_VPl6V-PEOQu3tatcHBjw_5_8">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_H_wy3UKvwUOrW3JWXZwJ8g"
      id="Tc_SVNzlfmqpk6U2G4A9-mn5w_6_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_QnoBJTXEjUiI-WvDuNK09Q"
      id="Tc_xeQIQQWk_kmO20C24hJCFg_6_6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="As_Of_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Y4Vr9kb6hkOULI_kBiL4hw"
      id="Tc_x8f3mE2BaUKF9hTxkV_aqQ_6_8">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:BusinessAcquisitionProFormaInformationTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_MM1JoDKOLk2YgT8hbUd56Q">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 675,556&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 626,643&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 581,614&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 142,171&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 107,548&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 90,488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.26&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.07&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.63&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.05&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_0c0Fei6BHkKhwEougjSjow_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">675556000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_ws4ByHLHBU-GkY1YZ1V4Ng_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">626643000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Zqn3ImzK-0mz7N15ghtqhQ_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">581614000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_qMJd1CmWhkaJ7WRDybrnWQ_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142171000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_xK1RanwYyk68e9WVJGlMNQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">107548000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_VXKT0Ufo0EmyZCVA9xR5sQ_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">90488000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_1DC6PH5oakSnAFalJEL9Gg_7_2"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.66</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_d2PxgH6S90WDBBfywnUrAw_7_4"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.26</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Tc_GxTF4DX5ukyoHLtWglUAJA_7_6"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.07</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_J5BqmOKno0efB28e4xLTRQ_8_2"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.63</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_dsGNWVPCaEWGX2-7jslusQ_8_4"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.24</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Tc_XTFGT-sVmEu9Z1nxEdSOIA_8_6"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.05</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_x4JKKUKdKUW60G8rC4cDyg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;4&#160;&#x2013; Fair Value Measurements&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;ASC Topic 820 &#x201c;Fair Value Measurements and Disclosures&#x201d; (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:18pt;"&gt;&lt;/td&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 1&#x2014;inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:18pt;"&gt;&lt;/td&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 2&#x2014;inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:18pt;"&gt;&lt;/td&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 3&#x2014;inputs are generally unobservable and typically reflect management&#x2019;s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques that include option pricing models, discounted cash flow models, and similar techniques.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="margin-top:12pt;"&gt;&lt;/div&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The carrying amounts of the Company&#x2019;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January 31, 2025:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January 31, 2024:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,206&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,206&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,146&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,146&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The Company enters into equity derivative contracts including floating-rate equity forwards to substantially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at January 31, 2025, we had equity derivatives for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;332,473&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; Descartes common shares with a weighted average price of $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;36.80&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and administrative expenses in the consolidated financial statements. For the years ended January 31, 2025, 2024 and 2023, we recognized a recovery in general and administrative expenses of&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;($11.8)&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;($4.6)&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;($1.3)&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Estimates of the fair value of contingent consideration are performed by the Company on a quarterly basis. Key unobservable inputs include &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_wUviR6C3fEqFUQmmSc77-w;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;revenue&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_mtJIG6LVE0yH0J6Nr7Bteg;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;growth&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; rates and the discount rates applied (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;10&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;% to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;16&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.The following table presents the changes in the fair value measurements of the contingent consideration in Level 3 of the fair value hierarchy:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30,949&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (31,688)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Charges through profit or loss &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,334&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,146&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,043&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (34,210)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Charges through profit or loss &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 707&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (12)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration paid in 2025 totaled &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$34.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, of which &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$9.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$25.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million was paid out of cash flow from operating activities. Contingent consideration paid in 2024 totaled &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$31.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of which &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$19.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$12.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million was paid out of cash flow from operating activities.&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_mgh-1ZSIrEKTIICXEc8ixw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January 31, 2025:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January 31, 2024:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,206&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,206&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,146&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,146&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_WMaY6KjdWE-84se4ZjMerQ"
      decimals="-3"
      id="Tc_hvx9G2jFQ0qckwERabtuRw_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">26372000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_vuW50PUIY0icq9nCnFJ6DQ_3_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">26372000</us-gaap:DerivativeAssets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CU2Xwf7ShkKAK-OfRB6-cA"
      decimals="-3"
      id="Tc_p4tD2PmX60K9N4N8upy2Yw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8674000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_IjvAHY6XqEawY8oU9-P9_g_6_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8674000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_48w17frq4EqulxAc4SrpFg"
      decimals="-3"
      id="Tc_OjZcgIO200-rw1ORjPGDVA_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16206000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_YV0liBIqJkCbFjX0ps7ILg_3_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16206000</us-gaap:DerivativeAssets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg"
      decimals="-3"
      id="Tc__GG7SdgKv0aDu_RUDVsEog_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35146000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_HJVv5-51wkOtWVwXSPuKLg_6_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35146000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <dsgx:DerivativeInstrumentSharesOfCommonStockHeld
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Narr_GM07deHU50CZgM_XBg7Y0A"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">332473</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
    <dsgx:DerivativeInstrumentCommonSharesHeldPerShare
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="2"
      id="Narr_hRobgmxqy0qexw4-u_n6Gg"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">36.80</dsgx:DerivativeInstrumentCommonSharesHeldPerShare>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_S44TR7fVgkSPz63FEkoxJg"
      decimals="-5"
      id="Narr_iKwQI77Iqk2RTLCXAaFwXw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-11800000</dsgx:ExpensesAndRecoveriesNet>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_ZMC6sYmwKUWILe6TNx0cvA"
      decimals="-5"
      id="Narr_N8ruEqdPDEO70Kdy8ErFlQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-4600000</dsgx:ExpensesAndRecoveriesNet>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_N--uJkt4tU2vFwCD3jya-Q"
      decimals="-5"
      id="Narr_UoD7l_ThtUOuPP2knwMjvQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1300000</dsgx:ExpensesAndRecoveriesNet>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember__72voAu_lEWs-vxpkQPcoA"
      decimals="2"
      id="Narr_o_8l8hdIbUaM3lJpdcRlmQ"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.10</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_9HVQwmHyT0iyzVKlE7mFlA"
      decimals="2"
      id="Narr_14cWmJD27kGUmZhAs8ffXA"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.16</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_xdRVF8AmbEuvAlvrZ8w-dw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30,949&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (31,688)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Charges through profit or loss &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,334&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,146&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,043&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (34,210)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Charges through profit or loss &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 707&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (12)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_1_31_2023_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_jKEXqqdgBE6xB_nreRZepw"
      decimals="-3"
      id="Tc_MY-FlkwymUadqmPidjc7RA_2_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">30949000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg"
      decimals="-3"
      id="Tc_ZTYFHrtZoEK3nPKQnp47lA_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19550000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg"
      decimals="-3"
      id="Tc_7qN44hVubEujeBVNpbKOLg_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-31688000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg"
      decimals="-3"
      id="Tc_Jh_sToTNvkqeVHtRay63rQ_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16334000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_i4Bu5EKEbUK63L_N9IpJBg"
      decimals="-3"
      id="Tc_jXQKZo_Fo0CIB75FtRAFkg_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000</dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_1_31_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member__K8ev2Me2k6vzxoqpIANAg"
      decimals="-3"
      id="Tc_hLHFJIfJ2EuW5nvUHyThIA_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35146000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw"
      decimals="-3"
      id="Tc_x5Yt02YyRUCFqm93fdsANA_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7043000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw"
      decimals="-3"
      id="Tc_nIRtQb_RG0i3o5tZaF8SPg_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-34210000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw"
      decimals="-3"
      id="Tc_KSFPiVQBMkWtaIam1tNvdA_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">707000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_nGE0RuHgh0K2zgVAok06Pw"
      decimals="-3"
      id="Tc_Qqcd9N-NDE6LBRTImEkeSQ_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-12000</dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_1_31_2025_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CU2Xwf7ShkKAK-OfRB6-cA"
      decimals="-3"
      id="Tc_YPYW6xReg06pUt7MRF9GXQ_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8674000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <dsgx:PaymentForContingentConsiderationLiabilityTotal
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_Qx0mcxTPDk2A0lVBr9HK7A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">34200000</dsgx:PaymentForContingentConsiderationLiabilityTotal>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_BYPCpb4ddECr_qxOVipXwQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9200000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_iEnx0kSriEeEXFoJ5Zfr3g"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">25000000.0</us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities>
    <dsgx:PaymentForContingentConsiderationLiabilityTotal
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_NDrkhyxVaUuvvOZ3THNKpA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31700000</dsgx:PaymentForContingentConsiderationLiabilityTotal>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_NI9miyDbXEyWizR5TMkqhA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19100000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_qadHLW6-akCvVYb8JbCE0w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12600000</us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities>
    <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_WVlgADOz8kic-oTjmeY93w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;5&#160;&#x2013; Trade Accounts Receivable&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 54,702&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,268&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: Provision for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (749)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (699)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 53,953&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51,569&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Included in accounts receivable are unbilled receivables in the amount of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at January 31, 2025 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at January 31, 2024). &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No single customer accounted for more than &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;10%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of the accounts receivable balance as of January 31, 2025 and 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the provision for credit losses as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Provision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;for&#160;Credit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Losses&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current period provision for expected losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 924&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Write-offs charged against the provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,770)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 699&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current period provision for expected losses &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,676&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Write-offs charged against the provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,611)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (15)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 749&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_Wu_VNKWockK7iazhGPWgSg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 54,702&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,268&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: Provision for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (749)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (699)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 53,953&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51,569&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_8J6sdvsE4EWaU3j-IOJHMA_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">54702000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_sUCmDU_zOkC7_YQRboezxg_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">52268000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_YO3K38mAGUWFuNYe3IkAxQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">749000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_abCgi5CPR0Sz7pzA2miyVA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">699000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_650bb1yA00KVXTq5yXjOmw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53953000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_3DBXtcjca0aEmgqMhZleUw_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">51569000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_0ws61qJerUOje4aj9j6I0g"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4600000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-5"
      id="Narr_azRBB1cXw0-b987klsDTmQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2400000</us-gaap:UnbilledReceivablesCurrent>
    <dsgx:PercentageOfAccountReceivable
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Narr_jZ4VZHsYSkW0CY3sG4-dhQ"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.10</dsgx:PercentageOfAccountReceivable>
    <dsgx:PercentageOfAccountReceivable
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Narr_iNmVHmBHLUm5y4utBWs6tg"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.10</dsgx:PercentageOfAccountReceivable>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_mhbu7AEjUEmjiwUFGNL6Bg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Provision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;for&#160;Credit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Losses&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,545&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current period provision for expected losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 924&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Write-offs charged against the provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,770)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 699&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current period provision for expected losses &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,676&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Write-offs charged against the provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,611)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (15)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 749&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_AAEcXS79S0-5BM6aAduOIw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1545000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_6HEf0ldwzUC_qLDpkAUr4A_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">924000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_eAFGc6gbuk-iEGuppY0FFw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1770000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_70QfpyoE7UepZSfBOayfhQ_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">699000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_3hep_J89_kqCYhQRKXtI3Q_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1676000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_NZKiH5rI1EWgvams6Zz_-g_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1611000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_vSy1a2VBr0mRpLSUtD4ZEg_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-15000</dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_FHZs78UzhUSK0M69f0UpjQ_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">749000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <dsgx:OtherReceivablesTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_2RHNG5hLVk2BZOWAe30ROw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;6&#160;&#x2013; Other Receivables&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,931&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,931&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January 31, 2025, a nominal balance (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; at January 31, 2024) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.&lt;/span&gt;&lt;/p&gt;</dsgx:OtherReceivablesTextBlock>
    <dsgx:OtherReceivablesTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_LMBibrc_NEeL79gqMCaKyQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,931&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,931&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:OtherReceivablesTableTextBlock>
    <us-gaap:OtherAssetsCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_8UDkm1RtC0iHBm7URVqwtQ_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16931000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_tonk_DHW80moMGNYbm1nTQ_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12193000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_z24E6t1hH0iVHtW6CxxrIw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16931000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_3dmH-U8itUG2ytPt3cGs7g_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12193000</us-gaap:OtherReceivablesNetCurrent>
    <dsgx:AmountsRecoverableFromFundsHeldInEscrow
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-5"
      id="Narr_ieQcgusWx0G5h_fhBGPi_Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
    <dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_x_X16fxb206LR3xChyfOuA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note 7 &#x2013; Prepaid Expenses and Other&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Prepaid expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 18,457&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_-c-HgOnF9kGzA58VCMLhTg;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Equity derivative contracts (Note 4)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,206&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 715&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 353&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 45,544&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33,468&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</dsgx:PrepaidExpensesAndOtherCurrentAssetsTextBlock>
    <us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_kSVXbz-1fkiEIwIBL9ydTw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Prepaid expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 18,457&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="-sec-ix-hidden:Hidden_-c-HgOnF9kGzA58VCMLhTg;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;Equity derivative contracts (Note 4)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,206&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 715&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 353&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 45,544&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33,468&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_3uGiYgWYlk-HKQeSh-01ug_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">18457000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_mN1siJWUHEuWPvSI509FIw_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16909000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:DerivativeAssetsCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_nvyKiE3W_EqrBPPhx1q17A_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">26372000</us-gaap:DerivativeAssetsCurrent>
    <us-gaap:DerivativeAssetsCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_45A_HJkMB0-AmMqEW4Ibgg_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16206000</us-gaap:DerivativeAssetsCurrent>
    <us-gaap:InventoryNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_AMTm7xILhU2NIz0vbsFGSg_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">715000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_gSllURv4AUKfXkiC0igAKw_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">353000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_cdtVYgQQD0-osmlBF-bjdw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">45544000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_AztQqp4jMUm-yHKyCdxYXA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">33468000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_1gFYEN6Uvkqog4LSDNo3bg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;8&#160;&#x2013; Property and Equipment&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39,261&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 10.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 48,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,193&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,432&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 718&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 994&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,430&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,314&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets under construction&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 497&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 43,637&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 54,180&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated depreciation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,507&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38,825&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,076&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,287&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 529&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 730&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,044&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,786&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 31,156&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,481&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 11,552&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_OTGSWR2RgUKREl-MAmnoGQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39,261&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 10.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 48,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,193&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,432&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 718&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 994&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,430&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,314&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets under construction&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 497&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 43,637&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 54,180&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated depreciation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,507&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38,825&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,076&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,287&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 529&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 730&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,044&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,786&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 31,156&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42,628&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,481&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 11,552&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_uDviOrJ_yE-9Kusbtl-yCg"
      decimals="-3"
      id="Tc_4W0y2aAAnE-CTEz78kmrYA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">39261000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_Go4nTqHXPUKw4j9ZmcdgOQ"
      decimals="-3"
      id="Tc_9-Hkr5KsGUKm7P3N3OkMOw_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48943000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_0zoYH0kUQk2deGemzPoQwA"
      decimals="-3"
      id="Tc_QE0B3LMO6UimMYFfkrv7jQ_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1193000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_22PpKr8xZEO7YA5NLeoKyw"
      decimals="-3"
      id="Tc_cIoNcVkC3EimALjc6MtJ8g_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1432000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw"
      decimals="-3"
      id="Tc_HNgsLH351kGZUAX4sRSUBQ_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">718000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_NP6RexODBUedcTTIbJ6Qlg"
      decimals="-3"
      id="Tc_fGRKyUKOqESB4-1Sk26itA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">994000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_FfPxRGaV8EC0xNasXANn7g"
      decimals="-3"
      id="Tc_JJUSXaPxj0edVjPiiAZ49g_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2430000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_tLIxzA-2w0e-6-v3HuiaUQ"
      decimals="-3"
      id="Tc_-_X7O2fH90aY9-hEMPQ4dw_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2314000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_qyasNacZ8UWxXVwLFrq5pw"
      decimals="-3"
      id="Tc_Onempss0OUe_A3WwffJ0_g_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_jqKw8kSw806UqTe-2_GuVw"
      decimals="-3"
      id="Tc_oW9TP9nmZEyz1bqIwHwlHQ_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">497000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_w-P6cheNxE6o2eFVrHBTwA_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">43637000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_rMLbsWosKUac4O1lEFXZsg_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">54180000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_uDviOrJ_yE-9Kusbtl-yCg"
      decimals="-3"
      id="Tc_h_nNqCTPrEm_E85svqHMkg_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">27507000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_Go4nTqHXPUKw4j9ZmcdgOQ"
      decimals="-3"
      id="Tc_7JfpXho7dUiuADtZEx15oQ_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">38825000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_0zoYH0kUQk2deGemzPoQwA"
      decimals="-3"
      id="Tc_61Ii1ehHmkiu8zHRO8TCkQ_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1076000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_22PpKr8xZEO7YA5NLeoKyw"
      decimals="-3"
      id="Tc_7_DMSYyyvUCO9CNgWZvsJA_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1287000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_qSuMz49hIECzh5ZcVYIuiw"
      decimals="-3"
      id="Tc_dq_VRlsYXEqqDSdNVnbJWw_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">529000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_NP6RexODBUedcTTIbJ6Qlg"
      decimals="-3"
      id="Tc_Wdrmp3Jw3UyVUuv-83J2-A_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">730000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2025_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_FfPxRGaV8EC0xNasXANn7g"
      decimals="-3"
      id="Tc_5tmPK1qfQECJu2dG1_fcUg_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2044000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2024_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_tLIxzA-2w0e-6-v3HuiaUQ"
      decimals="-3"
      id="Tc_i9XycFXnWUSqWR-1S5r2Tw_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1786000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_qm-mnrTOpUWlWdYgSVVBpw_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31156000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_bb249Zi_UkSDgWglJmCu4Q_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">42628000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Nlx-9e716Uy_Pl806PDwrA_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12481000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_i4l2kcvYckGy3DUnuR4eKw_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11552000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_xIo8MZf04U-LNbhwzRHM1w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;9&#160;- Intangible Assets&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 354,049&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 299,524&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 466,832&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 403,944&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,142&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,139&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,483&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 849,506&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 728,518&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 189,908&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 172,026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 316,506&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 285,148&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,889&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,227&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,933&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,070&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 528,236&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 477,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 321,270&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 251,047&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the year ended January 31, 2025 is primarily due to the acquisitions of OCR, ASD, BoxTop, MCP and Sellercloud partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$321.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million over the following periods: &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$71.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2026, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$56.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2027, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$49.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2028, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$41.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2029, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$29.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2030 and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$73.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.&lt;/span&gt;&lt;/p&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_LXOPwsX_2UqYR6NVS_fxog">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 354,049&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 299,524&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 466,832&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 403,944&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,142&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,139&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 16,483&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 849,506&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 728,518&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 189,908&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 172,026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 316,506&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 285,148&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,889&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,227&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,933&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,070&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 528,236&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 477,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 321,270&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 251,047&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w"
      decimals="-3"
      id="Tc_EBxrGWAaF0OXIUkpEt98BA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">354049000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA"
      decimals="-3"
      id="Tc_tlrKVweEF02PJg6mdyprsQ_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">299524000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_BeVghKtBX0eDM6R0nh-L9w"
      decimals="-3"
      id="Tc_ogz12eU4hkKDzqIMi6uFIw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">466832000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_cbdskV2m4UOhjP9Aq_0ovw"
      decimals="-3"
      id="Tc_3VHmurE_2kOirRiMWF6FDA_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">403944000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA"
      decimals="-3"
      id="Tc_7knd96na0kCRHN4I1BER8w_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12142000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA"
      decimals="-3"
      id="Tc_rV9qxNXpFEK67LsWcJr72g_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">10139000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg"
      decimals="-3"
      id="Tc_-IVhYk8I2E2ZJ3XVs8CfRA_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16483000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag"
      decimals="-3"
      id="Tc_RFgFqQFgYE2kJjsp4kfKCQ_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14911000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_0_eO-L5bB0elvtGaTjMI8w_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">849506000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_pz_jQhldX0eJTh78YhuiVg_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">728518000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_YSMMPs427kGaKpSu311Y1w"
      decimals="-3"
      id="Tc_d1SUGnoMBUC-Avb0EHLr0w_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">189908000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_IYROCJPdLUim7GtlyC6LLA"
      decimals="-3"
      id="Tc_UFwt0DugCEGvNn02zN58Zg_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">172026000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_BeVghKtBX0eDM6R0nh-L9w"
      decimals="-3"
      id="Tc_QcmC28e7rUyPQsXvZFX6Bw_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">316506000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_cbdskV2m4UOhjP9Aq_0ovw"
      decimals="-3"
      id="Tc_zN0SdeaPjkCDCDKGNlswUg_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">285148000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_teuNCOp-kkOZl8vqgK0hbA"
      decimals="-3"
      id="Tc_azzdiqRj3UWvKnzIYtqLBw_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8889000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9mYuNkK_gk-PdjTtUEJfhA"
      decimals="-3"
      id="Tc_jfgJyQyPqkCdcJdAR8XnRQ_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8227000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2025_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ioF0qecylkOba-oMxnEZPg"
      decimals="-3"
      id="Tc_yIs9wks8_UWFNyPTrzxiSA_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12933000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_-VjWOAtpok2--qR4Qmnjag"
      decimals="-3"
      id="Tc_mhEDQpFTX0uvi3IV021Aaw_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12070000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_lnGLsxuVlkiUbWFORUvFkw_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">528236000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_P0ZfVvhoGUC2WEL6SsoOFg_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">477471000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_M8WWOM5yE0i5NSOD11l_rg_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">321270000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_yFlGwdt31kKYi2l2lujGZg_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">251047000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_bd2zBX39W0mF0S9wMsKgxg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">321300000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_ciSdIoaVY0SyAXSTSZrqpg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">71200000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_uPFLLxmS10K_q7dMi9Q9Yw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">56600000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_CdmW8L52L0msvHY8DbaS4Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">49400000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_Ln6Ws2oCQ0-pEJ1mBTEYhA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">41000000.0</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_ETJ8G-l1X0qLrfP8Ytg6PQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">29300000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_Bzwfq6EYjUWN8NC1tA9WyQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">73800000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_ukXKMT5ZvUK708nQ5DUqJg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;10&#160;&#x2013; Goodwill&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January 31, 2023:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 760,413&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 675,647&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of GroundCloud&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82,750&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Localz&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 954&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of OCR&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 52,112&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of ASD&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,604&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of BoxTop&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,747&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of MCP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13,429&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Sellercloud&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 72,059&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Adjustments on account of foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (16,609)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,062&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 924,755&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 760,413&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_wF5WQm-DQE-MKjwGanCNzQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 760,413&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 675,647&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of GroundCloud&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82,750&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Localz&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 954&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of OCR&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 52,112&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of ASD&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,604&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of BoxTop&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,747&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of MCP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13,429&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Sellercloud&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 72,059&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Adjustments on account of foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (16,609)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,062&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 924,755&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 760,413&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_jkN7IZPwFEiRkLLZMS2s1A_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">760413000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_46FFkxhEikiWPp0cLsUEXg_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">675647000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_GroundcloudMember_18dDnmq29kO3Djb8t05lBw"
      decimals="-3"
      id="Tc_DbGSzCulzUqmNxsC1Zrmyg_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">82750000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_BusinessAcquisitionAxis_dsgx_LocalzPtyLtdMember_f0OvLPtpGEaUQNMlR3hhHQ"
      decimals="-3"
      id="Tc_wnATgWtDI0GRx7SnhtfK9g_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">954000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_OcrServicesIncMember_4lNLCofxn02rxqwBlgtKDw"
      decimals="-3"
      id="Tc_vLpXGxKH6kidzS1GGVgkbA_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">52112000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_AerospaceSoftwareDevelopmentsMember_h5CmnkT_9EGBbPZq63HlFQ"
      decimals="-3"
      id="Tc_zQhDCar3SUSqXJcnG0ZHqw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35604000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_BoxtopTechnologiesLimitedMember_HoonGK-sqUWeg9Mmbl8wkg"
      decimals="-3"
      id="Tc_yJcr97UfRUaKizrDZwtt9Q_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7747000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_MyCarrierPortalMember_JzaxhwlBZEaA4xopvFfu9Q"
      decimals="-3"
      id="Tc_dq5g7wsjb0eKE98x6eK1MQ_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13429000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SellerCloudLlcAndSellerCloudEuropeLtdMember_tKGFwt_5uk-Ix3vRSUFA5w"
      decimals="-3"
      id="Tc_arMwDU0NgEW8oXhGkBJYyg_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">72059000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_RqKZyZdaRkuIwtY862z0FA_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-16609000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_8zXuXM21I02o3v70xVfeVA_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1062000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_TjBXYrOuvUOaZDkdySUEvg_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">924755000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_xgXAmIPQU0amjlFBeyk0aA_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">760413000</us-gaap:Goodwill>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_nLdT0B3CRUGJizZs8uMu5g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;11&#160;- Accrued Liabilities&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued compensation and benefits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 55,105&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,075&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued contingent acquisition consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,146&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued professional fees&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,823&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,577&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 14,054&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 79,656&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 91,824&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accrued liabilities include accrued expenses related to third-party resellers and royalties, suppliers, and accrued restructuring charges.&lt;/span&gt;&lt;/p&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_EFlKSbgL2Uyr0TBPgj1WKg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued compensation and benefits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 55,105&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,075&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued contingent acquisition consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,674&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,146&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued professional fees&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,823&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,577&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 14,054&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:72.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 79,656&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 91,824&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_TAmRTYtwrUSSX_-rMHo9Sw_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">55105000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_D3xqvSAYZEyWEeUJ20mLOg_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">43075000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_PGmLFblNMkq6170rGJ1Bkw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8674000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_499v4JaRnEWISZhAcFReNg_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35146000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_JEmMVBu7l0yMJGoOm-Zcxw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1823000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_i1U12z8awUGVO4YqDx2-XQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1577000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_PlfIgobpFkKDUKPloN2g6Q_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14054000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_Yp9gSPK5NEeGxacKulOJTQ_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12026000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_FaqlNMuhzEWm-VapTbUKxw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">79656000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_kfHcbSEzzUi61HI5hxPp1A_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">91824000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_6-IicdxBfkqRh_fN6rQh_g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;12&#160;&#x2013; Long-Term Debt&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$350.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. The credit facility has a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; maturity with no fixed repayment dates prior to the end of the term ending December 2027. With the approval of the lenders, the credit facility can be expanded to a total of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$500.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#x2019; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Canadian Overnight Repo Rate Average (CORRA) or the Secured Overnight Financing Rate (SOFR) plus an additional &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;250&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. A standby fee of between &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;20&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;40&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; amounts were drawn on the credit facility as of January 31, 2025 and the balance of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$350.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As at January 31, 2025, we had outstanding letters of credit of approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at January 31, 2024), which were not related to our credit facility.&lt;/span&gt;&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_q9BnnaeJ3keyafk0FLQcFw"
      decimals="-5"
      id="Narr_qrvBcAQlS0uVxdI3NrclXA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">350000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentTerm
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_wrBQNVVzqEKlcU269TIqJQ"
      id="Narr_O1Vg2BfwREmfTXMr4Y6BGg">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_WL7pLbCDN0Ckb1zgzZgT2g"
      decimals="-5"
      id="Narr_cks0jmPIqkGmckX_i7015w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">500000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_V3Aj27J_PkmCeX-LFcezAg"
      decimals="4"
      id="Narr_ng04XDoEQUafvY05lbqynQ"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_TmoItXZpVkm1U7gesmtM-A"
      decimals="4"
      id="Narr_UlPBvh6czkKuzOEEJ4vM0g"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.0250</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_04BD1YAFmEeWdI8JxjptTw"
      decimals="4"
      id="Narr_Ol8RDRnwP02avg8ZYIeaTA"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.0020</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_tC7kCZf7I06n773bWStW2A"
      decimals="4"
      id="Narr_vSmSvM9MCU2v1SMEYNNcXQ"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.0040</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCredit
      contextRef="As_Of_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_RuVFsfy9rUWbrdsCqHsnVQ"
      decimals="-5"
      id="Narr_3xIwYFVqb0mJTtw1MQZsmg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:LineOfCredit>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="As_Of_1_31_2025_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_RuVFsfy9rUWbrdsCqHsnVQ"
      decimals="-5"
      id="Narr_RmhX6FPkd0yzc2PCNiVpyA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">350000000.0</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_gdz7Bdkj2ku_SN0IvC_Pww"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-5"
      id="Narr_MZROrs7-z0yMfbx87-6KYw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_hsaDJBT__EGHzn3WwsxDhw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;13&#160;&#x2013; Leases&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, some of which include options to extend the leases for up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The components of operating lease expense were as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;3,656&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,182&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Short-term lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;508&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;597&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;636&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;4,164&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,766&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,818&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Supplemental cash flow information related to operating leases was as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;4,028&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;3,996&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,240&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;New right-of-use assets obtained in exchange for lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;3,706&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,239&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;864&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Supplemental information related to operating leases was as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average remaining lease term (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average discount rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Maturities of operating lease liabilities were as follows as of January 31, 2025:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Operating&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Years Ended January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Leases&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,571&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,510&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,671&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 596&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 219&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2031 and thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,567&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (671)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,896&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,178&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4,718&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      id="Narr_sPieAbOho0WicwjUbfqpzg">P5Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseRenewalTerm
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      id="Narr_Fcc1bcKCUkSwbTT3b7Mdyg">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Group_W3ebdbjda0KD1rdwq_2vBg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;3,656&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,182&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Short-term lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;508&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;597&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;636&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;4,164&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,766&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,818&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;4,028&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;3,996&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,240&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.7%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;New right-of-use assets obtained in exchange for lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;3,706&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;4,239&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;864&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average remaining lease term (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average discount rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_y6lkvnmsVEqf3lGJ6huMEQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3656000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_TQA0Cxz3B0qTOPnP-FdhpA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4169000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_BaJInOrmlU6O1tXPRPuAjg_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4182000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_G7wnJb8ySk-5tQ0pRO1fUg_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">508000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_PEVCTahN2kC089khZzWEVw_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">597000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_K_oImgTts06IRZkfumTL5g_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">636000</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_RuGAEanwcUC2ncOezFqHJA_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4164000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_rBX8ZiJTFUWoLSO_J5RQCA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4766000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_AT8fqGezR0mYPjrUmasy0Q_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4818000</us-gaap:LeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_sx2fQav2JEKQHNNQsuf-Sw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4028000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_yA0axMgPPUedum_YCqwZtQ_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3996000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc__e6YXCRCDk-MXVaWMlZ72Q_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4240000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_Ph-ppBlOxki7v1sz3CSFVw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3706000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_yAmyIc3CHk6OX2B118Ftzg_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4239000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Y4ykE5-EdEO-Y2LnveqfJw_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">864000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      id="Tc_PP7m1ahAq0qhFsdWl7nT9A_3_2">P2Y10M24D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      id="Tc_QU2P4mnK9EmzaBZB2BgwOw_3_4">P3Y</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="3"
      id="Tc_Gj9E1EajHkeuOxERny6Xvg_4_2"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.051</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="3"
      id="Tc_pZ7VPaMnUUmKTASoyKM-PA_4_4"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.041</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_Qs4Tjx_aEEWlU3miPZyqug">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Operating&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Years Ended January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Leases&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,571&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,510&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,671&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 596&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 219&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2031 and thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,567&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (671)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,896&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,178&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4,718&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_WFo-WyeLiEunPq5N9xfP0A_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3571000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_bcoiLC6dFESYU9ORahSJHw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2510000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Mk1lm6_aOEukhYpvg1B44w_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1671000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_8dY4FsFt70uIxuYIlVwGqw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">596000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_kxJSMECvpkGPoBL-_Ki1uQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">219000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Q0M2EsmqjUyvhOBZs82TJg_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8567000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_QzoHfpWIJU2UMC4x5NRDGg_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">671000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_KIhTCX9MKUGkb2fOrYFWOg_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7896000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_hHDlfztSdkSq4hmPE1QX8w_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3178000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Vbhv1U3uDEKbpXf_L6YycQ_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4718000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_3d45LXeKJ0KftZGd5XVXMA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;14&#160;- Commitments, Contingencies and Guarantees&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Commitments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As described in Note 2 to these consolidated financial statements, we maintain deferred share unit (&#x201c;DSU&#x201d;) and cash-settled restricted share unit (&#x201c;CRSU&#x201d;) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, at January 31, 2025. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2025, we had equity derivatives for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;332,473&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; Descartes common shares and a DSU liability for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;332,473&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; Descartes common shares, resulting in no net exposure resulting from changes to our share price.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingencies&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Product Warranties&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Business combination agreements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In respect of our acquisitions of Supply Vision, GroundCloud, MCP and Sellercloud, up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$67.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million in cash may become payable if certain revenue performance targets are met in the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; following the acquisition. A balance of&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$8.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million is accrued related to the fair value of this contingent consideration as at January 31, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Guarantees&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#x201c;Guarantees&#x201d;. The following lists our significant guarantees:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Intellectual property indemnification obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Other indemnification agreements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third-party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock>
    <dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_uK8kwz4fsUSmBcd3v004ew"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
    <dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_IiOazfhDA0OYdpbG5G9SrA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1200000</dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
    <dsgx:DerivativeInstrumentSharesOfCommonStockHeld
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Narr_55bNo2NrvUe6NXsQTPTheg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">332473</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
    <dsgx:DeferredShareUnitLiabilityNumberOfCommonShares
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Narr_RaxlCtUtG068-lCPZTfoTg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">332473</dsgx:DeferredShareUnitLiabilityNumberOfCommonShares>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_wuvKoabWc0yCW4EQJ6bLvg"
      decimals="-5"
      id="Narr_qTq9ehjk-0eRlHULlee5BA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">67500000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_qFZ8AKGr10C7QT1d9FDHQA"
      id="Narr_00TBdSHX4E-GwFIOUaFd7g">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2025_us-gaap_BusinessAcquisitionAxis_dsgx_SupplyVisionGroundcloudMcpAndSellercloudMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_dsgx_BusinessCombinationAgreementsPerformanceBasedConsiderationMember_wuvKoabWc0yCW4EQJ6bLvg"
      decimals="-5"
      id="Narr_5g_wyUB-HUWHN8j1mdXzzQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8700000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_-1mvWm-z-EeB0wUuGoHaNQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;15&#160;&#x2013; Share Capital&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On July 15, 2022, we filed a final short-form base shelf prospectus (the &#x201c;2022 Base Shelf Prospectus&#x201d;), allowing us to offer and issue an unlimited quantity of the following securities during the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;25&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; securities were sold pursuant to the 2022 Base Shelf Prospectus, which was withdrawn in July 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On July 15, 2024, we filed a final short-form base shelf prospectus (the &#x201c;2024 Base Shelf Prospectus&#x201d;), allowing us to offer and issue an unlimited quantity of the following securities during the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;25&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;-month period following thereafter: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; securities have yet been sold pursuant to the 2024 Base Shelf Prospectus.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table sets forth the common shares outstanding (number of shares in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;(thousands of shares)&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance, beginning of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 85,183&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,820&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,756&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Shares issued:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Stock options and share units exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 423&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Issuance of common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisitions (Note 3)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance, end of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 85,606&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 85,183&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,820&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash flows provided from stock options and share units exercised during 2025, 2024 and 2023 were approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$12.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$9.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the years ended January 31, 2025, 2024 and 2023, the Company withheld &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;73,588&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;63,330&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; common shares, respectively, to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs. Total payments to satisfy employee tax withholding requirements for net share settlements of PSUs and RSUs were &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; during 2025, 2024 and 2023, respectively, and are reflected as a financing activity in the consolidated statements of cash flows.&lt;/span&gt;&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <dsgx:ShelfProspectusPeriod
      contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_mEkKpjUzJ0-wwdVRxvQgEg"
      id="Narr_rSmSvnYXLEm_X-4N0yHVKw">P25M</dsgx:ShelfProspectusPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_mEkKpjUzJ0-wwdVRxvQgEg"
      decimals="INF"
      id="Narr_oAU94f0TEkm85bjft_w83g"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <dsgx:ShelfProspectusPeriod
      contextRef="Duration_7_15_2024_To_7_15_2024_us-gaap_SubsidiarySaleOfStockAxis_dsgx_BaseShelfProspectus2024Member_5Z8ZCcWMOUO76bMv09nQEw"
      id="Narr_Zd5buzwJikuMqDpof4zqcA">P25M</dsgx:ShelfProspectusPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_7_15_2024_To_7_15_2024_us-gaap_SubsidiarySaleOfStockAxis_dsgx_BaseShelfProspectus2024Member_5Z8ZCcWMOUO76bMv09nQEw"
      decimals="INF"
      id="Narr_cu039gMMJ0OcFWhpy7MeYQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_x7hRxqIfw0etwnbD5tqBrA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;(thousands of shares)&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance, beginning of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 85,183&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,820&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,756&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Shares issued:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Stock options and share units exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 423&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Issuance of common shares&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisitions (Note 3)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance, end of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 85,606&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 85,183&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,820&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_P4JtADV7UEaHiCuEZVht8A_3_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85183000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_pAE6g3MRnUyQhrH1EAxp7g_3_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">84820000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2022_KiiX3XyaG0ybJiREGvKupQ"
      decimals="-3"
      id="Tc_zGbyWormlEaRN1HN3Psvbg_3_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">84756000</us-gaap:CommonStockSharesOutstanding>
    <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_VNhwUeySdU2ChHWyeX7qQg_5_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">423000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
    <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_nqimaYSsEU2YcG8PZYjPdw_5_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">363000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
    <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_7eO4tiWAMkaFbVz7ZWL9QQ_5_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">64000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_H6CEEfTrHUCvPfTytXE_DA_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85606000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_knKR62SH0Eu1bXkdku-hvw_8_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85183000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_L2xuDy4FMUaAnkEySEJwiQ_8_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">84820000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_uJdIQAIK4UKYiCC18MSiVg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">12400000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_EwwkrDnbsECRe19RP8s2Rw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9300000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-5"
      id="Narr_fnBP4jt9A0G1RE1U4JanDw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1700000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw"
      decimals="INF"
      id="Narr_25sMERwgeUuadFq-W5DSQg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">73588</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A"
      decimals="INF"
      id="Narr_Y9n6erfMTEmz7vtvEN4-vA"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">63330</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew"
      decimals="INF"
      id="Narr_AbzobWQyI0qhJEWQoZgIuQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">0</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw"
      decimals="-5"
      id="Narr_bHfFdiiD0U-8n5hfG21w9Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6700000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A"
      decimals="-5"
      id="Narr_-srwN9usYUG1RzJv9-N_cA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4900000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew"
      decimals="-5"
      id="Narr_oeIR29HIhUyVxlsrwrv3bQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_cW-8_voMRkWMkze7VuN6xw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;16&#160;- Earnings Per Share&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table sets forth the computation of basic and diluted earnings per share (&#x201c;EPS&#x201d;) (number of shares in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;143,273&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;115,907&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;102,236&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;85,443&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;85,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;84,791&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of employee stock options&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;587&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;505&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;455&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of restricted and performance share units&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;1,293&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;1,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;1,205&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average common and common equivalent shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;87,323&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;86,818&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;86,451&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.68&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.21&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.64&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.34&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.18&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the years ended January 31, 2025, 2024 and 2023, the application of the treasury stock method excluded &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;274,398&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;16,562&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;589,658&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the years ended January 31, 2025, 2024 and 2023, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;939&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;265,694&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,315&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Additionally, for the years ended January 31, 2025, 2024 and 2023, the application of the treasury stock method excluded PSUs and RSUs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;95,134&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.&lt;/span&gt;&lt;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_lgJ-9d_DEUmuPFJY6Vbyeg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table sets forth the computation of basic and diluted earnings per share (&#x201c;EPS&#x201d;) (number of shares in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;143,273&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;115,907&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;102,236&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;85,443&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;85,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;84,791&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of employee stock options&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;587&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;505&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;455&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of restricted and performance share units&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;1,293&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;1,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;1,205&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average common and common equivalent shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;87,323&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;86,818&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;86,451&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.68&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.21&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.64&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.34&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.18&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_52qlDP3ZWEen3xR2eoTojQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">143273000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_T3zXSalyKkKyrAp46YEH3w_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115907000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_obllSGE2ukaALcD4clD5Hg_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102236000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_0hGX_thcxEqG4xdNM7jNlQ_6_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85443000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_0-I5Pjc120-sVCQaeD2I8A_6_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">85068000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_rHtopZui006pvxDe7_DZtw_6_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">84791000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q"
      decimals="-3"
      id="Tc_nO5x64WiBUm28RyYDvLFEw_7_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">587000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tZaBkCg-_E2nfi42hj9Mmw"
      decimals="-3"
      id="Tc_OawaRvwaSU21Hcx3LnyOyw_7_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">505000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_fyWpwPAk-EmoyxE6tbBLlQ"
      decimals="-3"
      id="Tc_9GprEcn4XkOOW1BQKiQ51w_7_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">455000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember__YWuL5w1DEK5qIFREKwAfw"
      decimals="-3"
      id="Tc_RweN7PdW50Oje059Am7ueQ_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1293000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_wwn0t6Su1E6Yq9Voq8Lr3A"
      decimals="-3"
      id="Tc_-U9M6DK6PUWkneiOblubkQ_8_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1245000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_dsgx_PSUsAndRSUsMember_I6a6RZ4ShE6FoqNpzM1Jew"
      decimals="-3"
      id="Tc_xyHYu2TJ-0mA5R0IAE7ubg_8_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1205000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_wMbn7ESRQU6JXdq_Hv3WuA_9_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">87323000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_SINlYSRGrUqGYAaRmWjyOQ_9_4"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">86818000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_ValGSxspck25ylZog6Pn8Q_9_6"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">86451000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_WG4L9AbUYkabs79vTIdpHQ_11_2"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.68</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_HztEj3FwyU2S8myYaAStNA_11_4"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.36</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Tc_9sSPFDX98k62-cMC_q0KBg_11_6"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.21</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_FjmjKjP_gkK2-saX1FhK1w_12_2"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.64</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_ywNLOd69BUSFS1kHoFJVcw_12_4"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.34</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Tc_LHUQE3xJB0eIdu0b3-g4-Q_12_6"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">1.18</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Lnj0zT4JWEy8CcnqFviQ5A"
      decimals="INF"
      id="Narr_jZAGqm8FlkeZfAeUm1o8ZQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">274398</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_UDQyiLl3d06ArwTWo4GMEQ"
      decimals="INF"
      id="Narr_2EApoxTQMUiBCeST8I8nPw"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">16562</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_mkdJJESXj0eX3bKjFFxG5Q"
      decimals="INF"
      id="Narr_N0wtelu6yUea2PLAdJJtDg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">589658</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_XlMeR2DDHU-DnDfvB6AZqQ"
      decimals="INF"
      id="Narr_qx6f5VKIKUW3U3bqAa81Vg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">939</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_x0JjZP9AUU6zOUBEXUdXlw"
      decimals="INF"
      id="Narr_u8OZ8NceQkiCdI-cV1rJEA"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">265694</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_zmfpheEgwkuoppa1mziUzQ"
      decimals="INF"
      id="Narr_7eKYjR4fOkSUMUzP_TCLCw"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1315</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember__Wef7ZpiVEi7vc2dWtroQw"
      decimals="INF"
      id="Narr_yu3At8vgvE-csqGmdjEkTw"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_Utlj73tVJ0yplHkFoxjA3g"
      decimals="INF"
      id="Narr_O8d-r0OZOUOEYBN2UWF3wQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">95134</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_79uZOvhDnU-FGNnUvBr_PQ"
      decimals="INF"
      id="Narr_M0_txqnUQUaXVIV0RPamHg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_Feqsk7s-f02EvQvb428yGg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;17&#160;- Stock-Based Compensation Plans&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost of revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,407&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 940&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,440&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,468&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,744&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,788&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,371&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,017&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect on net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 19,962&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,480&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,667&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2024) recognized in the United States and Canada. The tax benefit realized in connection with stock options exercised during 2025, 2024 and 2023 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and nominal, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Stock Options&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of January 31, 2025, we had &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,501,901&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options granted and outstanding under our shareholder-approved stock option plan and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2,177,290&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; remained available for grant.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of January 31, 2025, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$9.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;years. The total fair value of stock options vested during 2025 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The total number of options granted during the years ended January 31, 2025, 2024 and 2023 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;280,658&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;278,845&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;356,014&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, respectively. The weighted average grant-date fair value of options granted during the years ended January 31, 2025, 2024 and 2023 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$29.53&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$26.19&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$18.47&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; per option, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The weighted-average assumptions were as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected dividend yield (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected volatility (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 30.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29.2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Risk-free rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected option life (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;A summary of option activity under all of our plans is presented as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Stock&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Options&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Exercise&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,593,433&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 45.54&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 45.7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 278,845&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 79.80&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (285,808)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33.06&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (17,919)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62.30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,568,551&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52.31&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.9&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 54.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 280,658&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 88.82&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (332,109)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 37.25&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (15,199)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 77.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,501,901&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 61.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 91.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,501,901&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 61.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 91.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';white-space:pre-wrap;"&gt;Exercisable at  January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,091,499&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 54.70&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 73.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The total intrinsic value of options exercised during the years ended January 31, 2025, 2024 and 2023 was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$20.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$13.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively. The exercise price range for outstanding options at January 31, 2025 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$26.44&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$120.82&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 10pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January 31, 2025 is presented as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Grant-Date&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Stock&#160;Options&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Fair&#160;Value&#160;per&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Share&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 488,821&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16.11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 278,845&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26.19&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (303,628)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17.74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (17,485)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 18.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 446,553&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 20.67&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 280,658&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 29.53&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (301,921)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 21.88&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (14,888)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 25.16&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 410,402&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 25.21&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of PSU activity is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;PSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 915,233&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38.41&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 67.9&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 95,134&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 105.96&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance units issued&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 68,005&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53.80&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (87,354)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,475)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 81.82&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 988,543&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53.81&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 86.3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 92,873&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 109.77&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance units issued&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 40,477&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 80.11&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (109,820)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 19.88&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3,428)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 80.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,008,645&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62.92&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,008,645&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62.92&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 726,075&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 47.45&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 88.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2025) that would have been received by PSU holders if all PSUs had been vested on January 31, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of January 31, 2025, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$10.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;years. The total fair value of PSUs vested during 2025 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Restricted Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of RSU activity is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;RSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 474,631&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 32.44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35.2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,774&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 79.89&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (53,898)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8.52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (413)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60.66&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 482,094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40.19&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62,597&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 88.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (54,173)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13.36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (829)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 70.74&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 489,689&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48.48&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 59.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 489,689&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48.48&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 59.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 427,613&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 43.14&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 52.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2025) that would have been received by RSU holders if all RSUs had been vested on January 31, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of January 31, 2025, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$5.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;years. The total fair value of RSUs vested during 2025 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.5&lt;/span&gt; &lt;span style="font-family:'Verdana';"&gt;million.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As at January 31, 2025, the total number of DSUs held by participating directors was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;332,473&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;311,081&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; at January 31, 2024), representing an aggregate accrued liability of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$38.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$27.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2024). During 2025, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;21,392&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; DSUs were granted and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; DSUs were redeemed and settled in cash. As at January 31, 2025, the unrecognized aggregate liability for the unvested DSUs was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; at January 31, 2024). The fair value of the DSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to DSUs recognized&lt;/span&gt; &lt;span style="font-family:'Verdana';"&gt;in our consolidated statements of operations was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$13.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the years ended January 31, 2025, 2024 and 2023, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash-Settled Restricted Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of activity under our CRSU plan is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;CRSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,583&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 7,879&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested and settled in cash&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (11,092)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 11,370&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested and settled in cash&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (7,333)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (599)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;12,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.7&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-vested at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.7&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2025 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2024). As at January 31, 2025, the unrecognized aggregate liability for the unvested CRSUs was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2024). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized in our consolidated statements of operations was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the years ended January 31, 2025, 2024 and 2023, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_i9LLu5ZqT0afxa8VeJRx_g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost of revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,407&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 940&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,440&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,468&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,744&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,788&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,371&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,017&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect on net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 19,962&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,480&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,667&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_6LDD9oq9OUuESvdtMiZz0w"
      decimals="-3"
      id="Tc_Xa1NyqJpxE-bQD1ef-ZUMw_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1407000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_0od1S6PnM0mj7T8qaoVr1A"
      decimals="-3"
      id="Tc_63UvxUUuPUS5ycaQIxD82w_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1128000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_SxrvPTnIFkuuTD54OzmjKQ"
      decimals="-3"
      id="Tc_aJN97LCWy0q54lklvNwQKA_3_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">940000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_4k1yOiu2Lk6QjVmPLanZUg"
      decimals="-3"
      id="Tc_QgYFVZkd9UKUhPEkMNrsaA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6440000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_MocVBqOuhEKNgD_BdDwPag"
      decimals="-3"
      id="Tc_8RX8ytDTLU-W1t6NFQau9A_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5197000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_lxKsFqqyMEqPn7bdKxggpQ"
      decimals="-3"
      id="Tc_KlLTIF63i0aN9D0jYg7y3g_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2468000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_dReCUT9GAUuaHpWiNoyI0g"
      decimals="-3"
      id="Tc_UnjDevv6dk2HETqmnE_drA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2744000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember__xmXzVVI1EmTxS0AS_jJOg"
      decimals="-3"
      id="Tc_vKIzAGxSO0-cnUsDNU2lng_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2138000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_IWngTEjIE0294u68Ko6Kiw"
      decimals="-3"
      id="Tc_6bUg-bH7rk6hGGCZkhBxLg_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1788000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_S44TR7fVgkSPz63FEkoxJg"
      decimals="-3"
      id="Tc_qs9eCMXjVkS1QdFCFLyhug_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9371000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_ZMC6sYmwKUWILe6TNx0cvA"
      decimals="-3"
      id="Tc_ZXlWVvfTRUSuapZ5Twr1XQ_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8017000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_N--uJkt4tU2vFwCD3jya-Q"
      decimals="-3"
      id="Tc_3whcqDl7PUqhBLn88VuDsw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8471000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_avEjGCLcM0ay7h_tUUjzXw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19962000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_OKXHOKX6CEiZcTafMryxAA_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16480000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_IMCz1rUcxUCS_Cc9klqZag_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13667000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_E4DMmoUASEyymVcm1uB00A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1200000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-5"
      id="Narr_2OvgAHPtHEabAwp8jCt0VA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1000000.0</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_PS7_cAF8yUu7L7BYbYM-Aw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-5"
      id="Narr_sVTS2imt_kSZUzXQAhhBpQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">400000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_Vll3rByMB06CLVlgr5L4PA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">400000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA"
      decimals="0"
      id="Narr_Ye1F1r0EbUiHwNreMnCQoA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1501901</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA"
      decimals="0"
      id="Narr_rxpETdJ_jU-fmuauARQc3g"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">2177290</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_E1w6yWf9N0Ovb3NRfl-jxg"
      decimals="-5"
      id="Narr_Z9BaCuVWT0yGIuindzgXcQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9700000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q"
      id="Narr_aEe--UiHA06KQbRy62M2Rg">P2Y4M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_WDLONm1Wf0qalnbavKFI6Q"
      decimals="-5"
      id="Narr_26MqBf_CPkuqFpp-7FLwDw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="0"
      id="Narr_W7FTKS6AH02fhTNhJcy2XQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">280658</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="0"
      id="Narr_7QXr8kRf40qvWgcllYmSRQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">278845</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="0"
      id="Narr_ii31gqilE0WCltRCb9I4JQ"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">356014</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Narr_JU3vE4dlyU-nQ3UECxkPEg"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">29.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Narr_QDG3LQ3EbkWUyj7TNQGGgw"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">26.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Narr_qFzBWX758UyaMl8SZzzG0g"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">18.47</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_WYRMWXAsa0uy1fshtDbWYg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected dividend yield (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected volatility (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 30.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29.2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Risk-free rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected option life (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="3"
      id="Tc_HJDyhaRXj0izBzXM2lgKhg_5_2"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.300</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="3"
      id="Tc_Ps_lOXOInkKreHuqpXZ8-A_5_4"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.308</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="3"
      id="Tc_et9V6kG0pUyuSQZIWEpmfA_5_6"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.292</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="3"
      id="Tc_L2iyxVNkb0er7m4WsP2QFQ_6_2"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.036</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="3"
      id="Tc_UJ0hIJKLL0CPg-Tl6u0mMQ_6_4"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.032</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="3"
      id="Tc_Mvc_gBVPXEWaaPjkHuzBGQ_6_6"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.024</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_PgHE0SgkukSJxVrbsqbzJw_7_2">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      id="Tc_2gzzB2EKwUmDQdvYxxJSpA_7_4">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      id="Tc_nIU-68zzt0-Ti4cyxW4tOw_7_6">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_G_vOIglfJEOZWRo35A3raw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Stock&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Options&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Exercise&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,593,433&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 45.54&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 45.7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 278,845&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 79.80&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (285,808)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33.06&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (17,919)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62.30&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,568,551&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52.31&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.9&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 54.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 280,658&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 88.82&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (332,109)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 37.25&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (15,199)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 77.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,501,901&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 61.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 91.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,501,901&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 61.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 91.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';white-space:pre-wrap;"&gt;Exercisable at  January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,091,499&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 54.70&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 73.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="INF"
      id="Tc_phaMBd93kEKDWtN8fTh--w_6_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1593433</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="2"
      id="Tc_s6ujMXpr8ECdjYyR5vif3g_6_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">45.54</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      id="Tc_W6Tjsq5afUyiz9mS5zzZaA_6_7">P4Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-5"
      id="Tc_Xnjawdwe20u_LpG4xAp4mQ_6_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">45700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="INF"
      id="Tc_XmLTx9BYnkGzBfOgimOT9g_7_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">278845</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_MzbC0p5hWUyb0oSIU3hHDg_7_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">79.80</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="INF"
      id="Tc_FcJuAFYDvkWAeI3fSkX8ZA_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">285808</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_A_EfNFRRMk2jsVSZU5TkTQ_8_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">33.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="INF"
      id="Tc_5-at1aTpxUeYu-B-a6wSsw_9_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">17919</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Tc_GAO_2lshn0mYrwvBj7PloQ_9_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">62.30</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="INF"
      id="Tc_YXajlCHyYEiHIoPLnVn-4w_10_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1568551</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="2"
      id="Tc_zeN3cUO_F06Zt333ZBhuiQ_10_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">52.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      id="Tc_5i_XqFyYBESWgXpe8MrnfA_10_7">P3Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-5"
      id="Tc_nxw4VoI2KkyxHAfHvAYR0g_10_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">54800000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Tc_eXJTZj8QIEG-NSJ7QjFGww_11_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">280658</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_TFFylUPqN0GmJNjssbyz-g_11_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">88.82</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Tc_nsIN6X6bbEqVn6xRH5Eehw_12_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">332109</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc__qOYCttLmEypBe1HH98qqQ_12_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">37.25</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Tc_vWZiPBdOqUy1gbGkRMOAfg_13_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">15199</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Tc_YahF3dzJek6Jd6vIkOyhWA_13_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">77.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Tc_wivkH1QviU-DtZ4YnycIpg_14_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1501901</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="2"
      id="Tc_9bFQoLuO9EqKJ159cYPefg_14_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">61.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_1GQJOCKdW0aD_u5SNpeeQw_14_7">P3Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Tc_B1BP3SxKuk6f946OjpXK5Q_14_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">91600000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Tc_jq-f54aFlkKgs0-ukO7UGw_16_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1501901</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="2"
      id="Tc_zgRF9qZyn0mvVnrwf2VgYQ_16_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">61.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_vE3n1PsBg0aKDYxaLmr5Jg_16_7">P3Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Tc_DErMMd57v0y-71KkYCDSGQ_16_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">91600000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Tc_6FU4S0_Nd0uMA_uCytpbyA_18_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1091499</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="2"
      id="Tc_2c8bEz_zOkOMneQ2AfqmLQ_18_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">54.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_EmlqV-PkHEq-JLrIHD2-Xg_18_7">P3Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Tc_-JoklU1Kx02o9vggSvsntw_18_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">73500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_oQIitPkm_ky5IzmJeZ3UxA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">20300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_jjgautN9RkGkasXg1gY0-Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-5"
      id="Narr_iFSFEyKLgUOIpiB2wAFuag"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Narr_85-4y-eEFkK0YORQAA2uQw"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">26.44</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Narr_vG9gaQWL6EigIrKDBOjXOg"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">120.82</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_Eqs1E5Hp_kW9mj1qeq1-8w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Grant-Date&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Stock&#160;Options&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Fair&#160;Value&#160;per&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Share&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 488,821&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16.11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 278,845&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26.19&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (303,628)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17.74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (17,485)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 18.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 446,553&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 20.67&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 280,658&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 29.53&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (301,921)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 21.88&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (14,888)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 25.16&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 410,402&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 25.21&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember__hYjTdk5LU2ktRZvFML-yQ"
      decimals="INF"
      id="Tc_TIvwbUHOJ0K1f8UDvOqi_A_6_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">488821</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember__hYjTdk5LU2ktRZvFML-yQ"
      decimals="2"
      id="Tc_5MDKk3aSU0CaTSBI3aWItA_6_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">16.11</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"
      decimals="INF"
      id="Tc_RfC2nbRuakCEIY1Ry1jSEg_7_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">278845</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"
      decimals="2"
      id="Tc_LQ1JfShXakiYD-Px7TPrtA_7_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">26.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"
      decimals="INF"
      id="Tc_AiRK5Q3B5kiaLpqIO3u9NA_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">303628</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"
      decimals="2"
      id="Tc_vJV9F-IIFEeu1N6j9HBkQA_8_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">17.74</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"
      decimals="INF"
      id="Tc_8OdAMe-Xf0edQGGPYotxTw_9_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">17485</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_o7YVaxOzLkGo5i6-npzV1w"
      decimals="2"
      id="Tc_dBA-uXcmfU-ZqFcbtjvXtQ_9_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">18.29</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_AkJWHYCt-UyY9UTyv4-EIw"
      decimals="INF"
      id="Tc_rHO6TGJVYE6pvApo1cCduQ_10_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">446553</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_AkJWHYCt-UyY9UTyv4-EIw"
      decimals="2"
      id="Tc_q0ACFUaTjU6segKWM7vQBg_10_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">20.67</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"
      decimals="INF"
      id="Tc_g70YjOxBm0OXVOeJFFLC9g_11_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">280658</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"
      decimals="2"
      id="Tc_LPR5h9-TWUmDCisAzvdd0g_11_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">29.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"
      decimals="INF"
      id="Tc_6639uaYFC0eGuwdMjjCuKw_12_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">301921</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"
      decimals="2"
      id="Tc_hk6_yYlPXkytFG3JG3sycg_12_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">21.88</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"
      decimals="INF"
      id="Tc_HUsIDAJ5T0uQYMDYT5-qKA_13_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">14888</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_W9oxPcWEEUKZ2Ikibq1LEw"
      decimals="2"
      id="Tc_MwV20klbJUWMOu3F5CZllQ_13_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">25.16</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA"
      decimals="INF"
      id="Tc_B7-H0il4xEyzDVpOFL24jw_14_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">410402</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Ff83oHdBPkmYUZ7Plid1BA"
      decimals="2"
      id="Tc_vFqsVBzzT0yfd9n0Wgs8yw_14_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">25.21</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_oVIvaAFc8E-Uir4GnZFCVw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;PSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 915,233&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38.41&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 67.9&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 95,134&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 105.96&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance units issued&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 68,005&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53.80&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (87,354)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,475)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 81.82&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 988,543&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53.81&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 86.3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 92,873&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 109.77&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance units issued&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 40,477&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 80.11&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (109,820)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 19.88&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3,428)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 80.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,008,645&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62.92&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,008,645&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62.92&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.78%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 726,075&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 47.45&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 88.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ"
      decimals="INF"
      id="Tc_U7MX03PAUESqnhAhaAQlPg_6_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">915233</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ"
      decimals="2"
      id="Tc_DDY03z0vgEWvQjTcsZIJgQ_6_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">38.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0etVXC59d0yJEabB2TBpIA"
      id="Tc_OpRapl981kis3b8VwZhEfg_6_7">P4Y6M</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_w9TnD6Ju0k2W8WEaS2J9PQ"
      decimals="-5"
      id="Tc_j-ryKplZPESwZD9BuiQSWA_6_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">67900000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="INF"
      id="Tc_OgxCBDahhUKqPqe8lwLGPw_7_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">95134</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="2"
      id="Tc_TshZhW6t4EycnxzjNFWr_A_7_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">105.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="INF"
      id="Tc_ZvLCYltkP0KCnfGzDrLVew_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">68005</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="2"
      id="Tc_Igb1IF2HtkOf-P72OUVNZA_8_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">53.80</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="INF"
      id="Tc_byIaULh4v0q0UVO_rAYnDQ_9_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">87354</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="2"
      id="Tc_jrv7RWqeJUGZlBVSPrIGsQ_9_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">14.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="INF"
      id="Tc_yfRnApiusEGDqTov2jAvdA_10_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">2475</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      decimals="2"
      id="Tc_B9HGsyVlc0OQf1Tk51dSCA_10_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">81.82</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw"
      decimals="INF"
      id="Tc_Pkaf-cMxYUmv1_NGL5Sl6w_11_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">988543</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw"
      decimals="2"
      id="Tc_iCOX1F8Wl0-cjYFWA4fGDA_11_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">53.81</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_thwCYiII2EiJ-RwLZDkRFA"
      id="Tc_U0vnhmCfXkCpwtDIWn12ZQ_11_7">P4Y6M</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_vvFApilCO0CdzsbO3kokQw"
      decimals="-5"
      id="Tc_sD_Fna-XB0iu53yQsYbj4Q_11_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">86300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="INF"
      id="Tc_FjulF7vXU0G8QzLBXgvaJg_12_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">92873</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="2"
      id="Tc_OsN4ntczWUmdROsMda3x1A_12_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">109.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="INF"
      id="Tc_Cy1x5OOrH0Wzr5Ya391QjA_13_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">40477</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="2"
      id="Tc_9KBW2FkJPkWXd6oymAi7IQ_13_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">80.11</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="INF"
      id="Tc_AJEziD26TUeqjsiTcxNz1w_14_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">109820</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="2"
      id="Tc_8TKxt5bsEECfxDBsXONbfg_14_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">19.88</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="INF"
      id="Tc_QTtNAY1B60uqXhFrHLoUaQ_15_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">3428</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="2"
      id="Tc_c5m2zLDf-0S6-nX3Dzsf2A_15_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">80.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="INF"
      id="Tc_YUcRi74jv0ecF2cKrJyOmw_16_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1008645</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="2"
      id="Tc_3QFrS-bmIEilVkVRVFqDUA_16_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">62.92</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      id="Tc__Mi4VI60P0eAxj9Kve52qw_16_7">P4Y7M6D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="-5"
      id="Tc_GR-NXHEsTUmBEXPkjSvv9g_16_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">123100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="INF"
      id="Tc_1tdnJxEHB0Kz4XnY3OBXew_18_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">1008645</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="2"
      id="Tc_u-aCv-Js1kiO8PRkjweLZg_18_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">62.92</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      id="Tc_R6gB_SzdukyXeXbgNRhX_g_18_7">P4Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="-5"
      id="Tc_aIHUrW1KDUivw_7xKQCD-A_18_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">123100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="INF"
      id="Tc_zvsuJP27rUatgaSDyBcAiw_20_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">726075</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="2"
      id="Tc_8ugYhIZcOkK5-gcWShMehw_20_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">47.45</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      id="Tc_-SIjQcQ0uECiJXRAROVm4w_20_7">P3Y2M12D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="-5"
      id="Tc_fpYGexWiVkyNKejFJ3ki0Q_20_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">88600000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_oA3Afbbb30uWs2U3-TT3nQ"
      decimals="-5"
      id="Narr_Fe7goZmP_EikK2OCZcrXqg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">10600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      id="Narr_FbVN50LvW02RRR1MIb1hYA">P1Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Zb7sjQ3-6k-OL1lUHJgq4A"
      decimals="-5"
      id="Narr_NWXVFmxGpUKTzXKyy3pZDQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_zDiKNALgsUa9bVMEjMgOvQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;RSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 474,631&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 32.44&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35.2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,774&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 79.89&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (53,898)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8.52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (413)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60.66&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 482,094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40.19&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62,597&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 88.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (54,173)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13.36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (829)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 70.74&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 489,689&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48.48&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 59.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 489,689&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48.48&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 59.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 427,613&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 43.14&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 52.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg"
      decimals="INF"
      id="Tc_5Pmi2g-SiUCq0BgUl-XUUg_6_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">474631</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg"
      decimals="2"
      id="Tc_RTSV6rFth0C54bglzeJX4A_6_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">32.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_lXDJIomuPEOC3V0RhuAS9A"
      id="Tc_FgzUl9kV6EiuZDVnzd14Ow_6_7">P4Y8M12D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_HUphN6BcTkKHxu5OPtjuAg"
      decimals="-5"
      id="Tc_SUPPylVxxECHpSHlKCI6HA_6_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35200000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      decimals="INF"
      id="Tc_dabH9MlOlEmu4C8D4X9oJw_7_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">61774</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      decimals="2"
      id="Tc_d1ySLGMpgEi8-ZHt1SU1sw_7_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">79.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      decimals="INF"
      id="Tc_AnN4Mp8XCU2GvfmBNycu5g_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">53898</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      decimals="2"
      id="Tc_ACoBhMvdL0WKbnQDXJ_SpA_8_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">8.52</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      decimals="INF"
      id="Tc_MBA9xwpyIEiCf-Z11w-TvA_9_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">413</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      decimals="2"
      id="Tc_V8kRVBM5skiSBuGL0TxqTA_9_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">60.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A"
      decimals="INF"
      id="Tc_bO4oKoV7dkmUGm0gN8d01w_10_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">482094</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A"
      decimals="2"
      id="Tc_e6ymlT65DESVPZHH_0UFdg_10_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">40.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_zM4JITIuWkyrau1u9QtOMg"
      id="Tc_TVej2NuA-06ya5rfCESYyQ_10_7">P4Y9M18D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rCmow0_3nkSVUhUJ0uLX8A"
      decimals="-5"
      id="Tc_vQemzHP8eEC8GoqcJtidOQ_10_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">42100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="INF"
      id="Tc_rHlfVqjQYES6Htwkj4DiIQ_11_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">62597</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="2"
      id="Tc_h9xEJf62U0aKqCgmEoN-BA_11_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">88.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="INF"
      id="Tc_bGN0nj-MLEifANjPY516eA_12_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">54173</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="2"
      id="Tc_71yOFrCXEku9_OYfJNUt-w_12_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">13.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="INF"
      id="Tc_PNeYTlkz70yZ_szMdWK9jQ_13_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">829</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="2"
      id="Tc_nv5GLju5UkuLdoHvRj2Itg_13_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">70.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="INF"
      id="Tc_nJCz6GTqgEqNuWAQXq0QbA_14_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">489689</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="2"
      id="Tc_1Vg5nKlFYE666Bqu6yZ9mQ_14_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">48.48</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      id="Tc_aLNJnVDc_0SdIdT8BKlBCw_14_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="-5"
      id="Tc_nnSeFBgGrEuROwqzKrT12g_14_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">59800000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="INF"
      id="Tc_bfx7Y_fdh0aY9ilqk5ORLQ_16_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">489689</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="2"
      id="Tc_fNYh0so0Dk-l54Y2RkodMw_16_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">48.48</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      id="Tc_A9UIryjMnEC50vDdAvr4aQ_16_7">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="-5"
      id="Tc_nii_DGUxuEeU7QTzvO2-TQ_16_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">59800000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="INF"
      id="Tc_XKKOst_uGUiU229Xv2Qg_w_18_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">427613</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="2"
      id="Tc_14_pp5VLCUa9_FZeF7cg2w_18_5"
      unitRef="Unit_Divide_USD_shares_-AsW3fV6SkWx8j20rX4hOQ">43.14</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      id="Tc_mSv1F0IRJEO770M5r_X6mg_18_7">P4Y4M24D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="-5"
      id="Tc_SOmxCnrsv06uvI_cU45-Mg_18_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">52200000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_gI4vSUqD7EGznbKknbx3Jw"
      decimals="-5"
      id="Narr_ZOC8N6Tt60KaoI_w0co4Lg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      id="Narr_Oy3NiQJoV02qrX0Gmpi2UA">P1Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_20q7svXTjUqonSKlpSFkdA"
      decimals="-5"
      id="Narr_MS9CQDA-jkuNy-EjYfWMKQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <dsgx:DeferredShareUnitsOutstandingNumber
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ"
      decimals="0"
      id="Narr_1CwqoS8R5kiuHzJQhCKk5w"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">332473</dsgx:DeferredShareUnitsOutstandingNumber>
    <dsgx:DeferredShareUnitsOutstandingNumber
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ"
      decimals="0"
      id="Narr_i3qM_AFTyEqDPLDT3Jg2tw"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">311081</dsgx:DeferredShareUnitsOutstandingNumber>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ"
      decimals="-5"
      id="Narr_c7xWq_rUTUGmtX8kqY7lRA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">38600000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ"
      decimals="-5"
      id="Narr_9dr_ESHozkGYB7--17Ai9w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">27300000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <dsgx:DeferredShareUnitsGrantsInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA"
      decimals="0"
      id="Narr_WmcCX9dM8EG3VxxR-103Gg"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">21392</dsgx:DeferredShareUnitsGrantsInPeriod>
    <dsgx:DeferredShareUnitsRedeemedAndSettledInCash
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA"
      decimals="0"
      id="Narr_vGMJsiVG4ECL_RylJfjBug"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">0</dsgx:DeferredShareUnitsRedeemedAndSettledInCash>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_s0s8Du9dZkeWJTPYoGgPvQ"
      decimals="0"
      id="Narr_nC-rAMQJrUCHirlwyxbeXw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_V6yDqm3T1UCbggBu3vAWXQ"
      decimals="0"
      id="Narr_t19NO4XBPkiKlI6uYKPhfg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_lgPhBVrG30-52CtX2SEUDA"
      decimals="-5"
      id="Narr_3hZtgT_F7Eeg1Yl2a2QUHw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13900000</us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense>
    <us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_-KLFiDtj70OXO11uoPl3PQ"
      decimals="-5"
      id="Narr_pObH5EdClE-B2eMtcNMW1A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6700000</us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense>
    <us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_9NHSdIjPZ0aePdeZGMz4og"
      decimals="-5"
      id="Narr_F1r-y2xqfkO02N8J-s0dlw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3200000</us-gaap:DeferredCompensationArrangementWithIndividualAllocatedShareBasedCompensationExpense>
    <dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_Y_Cnwqu51kW4FlFYwIKf7A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;CRSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,583&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 7,879&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested and settled in cash&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (11,092)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 11,370&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested and settled in cash&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (7,333)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (599)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;12,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.7&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-vested at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 12,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.7&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="INF"
      id="Tc_8VVMLyMtlUu96EZ3TZI7EA_6_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">14583</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      id="Tc_XDRGSfeTJU6ZTbY0GTmKRA_6_4">P1Y4M24D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardsGrantsInPeriod
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="INF"
      id="Tc_ncEAQCrSJkaOW8ATjUSMDA_7_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">7879</dsgx:CRSUAwardsGrantsInPeriod>
    <dsgx:CRSUAwardsVestedAndSettledInCash
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="INF"
      id="Tc_BnTGIhSTwkGTUS7LT4c77w_8_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">11092</dsgx:CRSUAwardsVestedAndSettledInCash>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="INF"
      id="Tc_QiKGi14njU-rS_P1tF-cSQ_9_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">11370</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      id="Tc_J8s_54qQe0ilhe3xU2nBsA_9_4">P1Y9M18D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardsGrantsInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Tc_hKHCCx_umUWjUu1avEyWNQ_10_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">8579</dsgx:CRSUAwardsGrantsInPeriod>
    <dsgx:CRSUAwardsVestedAndSettledInCash
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Tc_0UykZ-5RxU-SxZw-cwnxjg_11_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">7333</dsgx:CRSUAwardsVestedAndSettledInCash>
    <dsgx:CRSUAwardsForfeitedInPeriod
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Tc_b7wjM8siIUKNozkXbv7pTQ_12_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">599</dsgx:CRSUAwardsForfeitedInPeriod>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Tc_A1wvGjSakk2jJRevS6_Vfw_13_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">12017</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_m_enM5vP0EuYQ7nADtWVDQ_13_4">P1Y8M12D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardNonvestedNumber
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="INF"
      id="Tc_w_WlboiOh0eUJxTNQAISig_15_2"
      unitRef="Unit_Standard_shares_rDh5n6sj-0e4HgFqzCmM0g">12017</dsgx:CRSUAwardNonvestedNumber>
    <dsgx:CRSUAwardNonvestedWeightedAverageContractualLife
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tc_GWr_PreFi0qlchow591Qrg_15_4">P1Y8M12D</dsgx:CRSUAwardNonvestedWeightedAverageContractualLife>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_pOL8xJrfKk674SqBN-Lbyw"
      decimals="-5"
      id="Narr_fhHotC6NcU-hYo7kz5nL0Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_-ZGdd0zQYk-OMCj5VH7s_Q"
      decimals="-5"
      id="Narr_x9eNvAA5zEKHKZ8yKBpL9w"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_pOL8xJrfKk674SqBN-Lbyw"
      decimals="-5"
      id="Narr_JxpNrrYBx0-xHkht7sqztQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_-ZGdd0zQYk-OMCj5VH7s_Q"
      decimals="-5"
      id="Narr_BCY_HqI_MEisB_qXA6klJg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">800000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_jtU7415FjECejIXz3gks4Q"
      decimals="-5"
      id="Narr_4BUAWFX0WU-ISoHYeKxz_A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">800000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_NIQBOw-JzkawB0TaLNxtyg"
      decimals="-5"
      id="Narr_gAe1oXqAskWlNudiHB3AGw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">600000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_DS62IYIGQkSDYdw6UNHjEA"
      decimals="-5"
      id="Narr_zRVGNs2Hxkegf-F9H7Ec6Q"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">800000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_art64Tm3y0WSUcdihUoruQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;18&#160;- Income Taxes&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income before income taxes is earned in the following tax jurisdictions: &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 60,119&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53,246&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 49,158&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 92,637&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51,268&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other countries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 38,877&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,560&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33,302&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 133,728&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense (recovery) is incurred in the following jurisdictions:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,282&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,376&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 18,020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,532&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,085&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other countries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13,100&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,315&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,490&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 53,402&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,223&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 28,248&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax expense (recovery)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3,875)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,369)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,059&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 585&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5,060)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,888)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other countries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,752)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,451&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 73&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (5,042)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5,978)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,244&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense for 2025, 2024 and 2023 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;25%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;23%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;24%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of income before income taxes, respectively, with current income tax expense being &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;28&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;%, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;27&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;% and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;21%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of income before income taxes, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current income tax expense increased in 2025 as compared to 2024 primarily due to a decrease in tax attributes available to shelter income in Canada and the United Kingdom.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current income tax expense increased in 2024 as compared to 2023 primarily due to a decrease in tax attributes available to shelter income in Canada and the new requirement to capitalize research and development expenses in the United States.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax recovery decreased in 2025 as compared to 2024 primarily due to the utilization of tax attributes in the Unites States partially offset by full utilization of tax attributes in the United Kingdom and Canada in the prior period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax expense decreased in 2024 as compared to 2023 primarily due to the capitalization of research and development expenses in the United States in 2024 and the increased utilization of tax attributes in Canada in 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The components of the deferred income tax assets and liabilities are as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Accrued liabilities not currently deductible&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 10,326&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 11,736&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Accumulated losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 2,813&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 2,397&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Difference between tax and accounting basis of property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 9,653&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 9,088&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Research and development expenditures and tax credits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 9,683&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 7,680&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Total deferred income tax assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 32,475&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 30,901&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Difference between tax and accounting basis of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (53,346)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (42,423)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Temporary difference on equity derivative and related party debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (6,990)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (5,513)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Total deferred income tax liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (60,336)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (47,936)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Net deferred income taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (27,861)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (17,035)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Valuation allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (2,464)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (1,969)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Net deferred income taxes, net of valuation allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (30,325)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (19,004)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As at January 31, 2025, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,305.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income before income taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 133,728&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Combined basic Canadian statutory rates&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;%&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;%&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense based on the above rates&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 50,783&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40,055&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,438&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase (decrease) in income taxes resulting from:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Permanent differences&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,490&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 590&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of differences between Canadian and foreign tax rates&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (2,042)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,293)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,859)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of rate changes on current year timing differences&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (424)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (48)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (219)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Change in estimates relating to prior periods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,888)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (972)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase (decrease) in accruals for uncertain tax positions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (544)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (117)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,181)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Valuation allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 564&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 263&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (155)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Research tax credits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (2,230)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,488)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (734)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other, including foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 697&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 637&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 584&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have income tax loss carry forwards which expire as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;United&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Expiry year&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Canada&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;States&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;EMEA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Asia Pacific&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 59&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 191&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 50&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 188&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 146&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 237&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 375&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 310&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 798&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Indefinite&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 532&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,858&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,256&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,326&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,033&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,615&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liability, beginning of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,153&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,120&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Gross increases &#x2013; current period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,476&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,946&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Lapsing due to statutes of limitations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (2,098)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,913)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liability, end of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,531&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,153&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have identified accruals of $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with respect to uncertain tax positions as at January 31, 2025. It is possible that these accruals for uncertain tax positions will not be required in which case up to $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of the recorded liability will decrease the effective tax rate in future years if this liability is reversed. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We believe that it is reasonably possible that $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of the uncertain tax positions could decrease tax expense in the next 12 months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January 31, 2025 and January 31, 2024, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Years No Longer Subject to&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"&gt; Audit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Tax Jurisdiction&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States Federal&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2020 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2017 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United Kingdom&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Sweden&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Norway&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2018 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Netherlands&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2019 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Belgium&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Germany&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2019 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Switzerland&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2020 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Brazil&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2020 and prior&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_C0JJspqBK0i2cb8bHhfu9Q">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 60,119&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53,246&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 49,158&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 92,637&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51,268&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other countries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 38,877&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,560&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33,302&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 133,728&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg"
      decimals="-3"
      id="Tc_0iKeHmL2tU28576VyAXrXQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60119000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg"
      decimals="-3"
      id="Tc_VAPmJGmaDkGWdXMhqwdOFA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53246000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw"
      decimals="-3"
      id="Tc_6hLcfUEnSEi-TEH0JLnD1A_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">49158000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA"
      decimals="-3"
      id="Tc_N_G2W9LEqk-3dz5iBwnvYw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">92637000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw"
      decimals="-3"
      id="Tc_QBCfAi-P7UOJh6100ZK_KQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">62346000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ"
      decimals="-3"
      id="Tc_0xWCyO7keEaQCxdsG16teQ_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">51268000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow"
      decimals="-3"
      id="Tc_fMV0qR3nFUCuRc0jsWU5_A_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">38877000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q"
      decimals="-3"
      id="Tc_yBW7s6ZWrUiV2eKI7EGOfw_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35560000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ"
      decimals="-3"
      id="Tc_6kSHpZuNVEyrbPH8OUjQxQ_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">33302000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_0zeUL7kJJEagxbVqP-5ShQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">191633000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_PTnBJKgw60SFRy8JD_vlAQ_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">151152000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_jGNqjMB-MEalkxAgLnn86g_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">133728000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_3UMQPQQUck2hVoIsvVm5Vg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,282&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,376&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 18,020&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,532&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,085&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other countries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13,100&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,315&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,490&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 53,402&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,223&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 28,248&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred income tax expense (recovery)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3,875)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,369)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,059&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 585&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5,060)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,888)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other countries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,752)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,451&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 73&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (5,042)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5,978)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,244&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg"
      decimals="-3"
      id="Tc_QTY2forl2UWh4zzHLEB4AA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">22282000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg"
      decimals="-3"
      id="Tc_akydEO7oI0u1XF6vZpxuIw_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16376000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw"
      decimals="-3"
      id="Tc_sg5g8UmsYEq0y4tf4rDXrw_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9673000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA"
      decimals="-3"
      id="Tc_bx1LicsXZkWvynA9Dg0wIw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">18020000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw"
      decimals="-3"
      id="Tc_4Tj4CX4g-kytILbpyzx_nA_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16532000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ"
      decimals="-3"
      id="Tc_3UscJ8whzEKiDoxJCwuaRg_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13085000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow"
      decimals="-3"
      id="Tc_QfMDBSlkqUOjJJMVt9_hmA_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13100000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q"
      decimals="-3"
      id="Tc_lmsB5vZbV0-FR1YeNbN7HQ_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8315000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ"
      decimals="-3"
      id="Tc_kjoa0tI2MEGKq0VFwTXncg_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5490000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_3MduTbU8Fk-gyQxzigqXlA_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53402000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_l-Rlu_LVZ0yOA3lWuvEnmQ_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">41223000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_j78RQgW7q0qTG1oM-NgpBA_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">28248000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_CA_ZxXr0pfKmE2L7WQqc4W9lg"
      decimals="-3"
      id="Tc__LGykUsRiU6GDjslE9yiZA_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-3875000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_CA_Wl0S3qxlEE6139Cep4nyRg"
      decimals="-3"
      id="Tc_i1rMANJnb0S3snR7XGG1Xw_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-2369000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_m8TEAfER7kWvWj7xYiJWvw"
      decimals="-3"
      id="Tc_WdR1I9QmBU-HY_tQSpEl8A_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5059000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_country_US_bIYjz0-aHkK-4iir2IhRwA"
      decimals="-3"
      id="Tc_URkDujKiP02uMLI_lmtUrQ_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">585000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_country_US_ssz_XUTVYUKb1HS98gSIDw"
      decimals="-3"
      id="Tc_Ny-0EJSStU2t4jd8ZpKlEw_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5060000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_US_Eae74vxKokWl85hPRIsqVQ"
      decimals="-3"
      id="Tc_fOjj3yzXn0eS0okqCbJzPA_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1888000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_zb6KcDQy8kaTv4paIQlrow"
      decimals="-3"
      id="Tc_NBHq46ulsEOwl5158fQeHQ_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1752000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_6aSzjoD8dUKPZywTUBwx5Q"
      decimals="-3"
      id="Tc_MoD2pT-eKkyVfUoruR_4Sg_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1451000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_n5qUIEpQuEaJ1bVcHz60vQ"
      decimals="-3"
      id="Tc_0mOiRwZzQUi_kQoIc5dlrA_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">73000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_C6l8Kew7oEavetObsfmxLg_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5042000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_I6lCpOTCekqDpzOcqQTyRA_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-5978000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_SemoAiYk30elAQMtf8V9qg_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3244000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_EZwXHAPcckKw1h6IG3iqCw_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48360000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_fPhAPmvToUOo23eJgQBpJQ_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35245000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_W7rvgztPhkONSZqvtZ68jw_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31492000</us-gaap:IncomeTaxExpenseBenefit>
    <dsgx:IncomeBeforeTaxesPercent
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Narr_tgT33NPID0SFGsnu3fxj1w"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.25</dsgx:IncomeBeforeTaxesPercent>
    <dsgx:IncomeBeforeTaxesPercent
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Narr_-cA_BTCgeECoaR8cSJNZ2Q"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.23</dsgx:IncomeBeforeTaxesPercent>
    <dsgx:IncomeBeforeTaxesPercent
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Narr_s7IcUK6EdUCTwVv0zC2Hww"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.24</dsgx:IncomeBeforeTaxesPercent>
    <dsgx:CurrentIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="2"
      id="Narr_Yg9dcQKQ3U6k8BF6psRNuQ"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.28</dsgx:CurrentIncomeTaxRateContinuingOperations>
    <dsgx:CurrentIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="2"
      id="Narr_j6-SIGUkmU2OLJblG_MprA"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.27</dsgx:CurrentIncomeTaxRateContinuingOperations>
    <dsgx:CurrentIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="2"
      id="Narr_gz6-VVg9m02eLaAzBhMqjA"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.21</dsgx:CurrentIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_An1lCSKntUmNOMs9J-5ncQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Accrued liabilities not currently deductible&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 10,326&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 11,736&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Accumulated losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 2,813&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 2,397&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Difference between tax and accounting basis of property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 9,653&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 9,088&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Research and development expenditures and tax credits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 9,683&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 7,680&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Total deferred income tax assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; 32,475&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; 30,901&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Difference between tax and accounting basis of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (53,346)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (42,423)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Temporary difference on equity derivative and related party debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (6,990)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (5,513)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Total deferred income tax liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (60,336)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (47,936)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Net deferred income taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (27,861)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (17,035)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Valuation allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (2,464)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (1,969)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;Net deferred income taxes, net of valuation allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"&gt; (30,325)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt; (19,004)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_AdzX8Gsg1U6NPECqtuWtdQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">10326000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_88XOFprGJ0Wd8B361m5lvw_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11736000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities>
    <dsgx:DeferredTaxAssetsAccumulatedLosses
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_1_2p4V3ZzEOcPOLtI4mjaQ_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2813000</dsgx:DeferredTaxAssetsAccumulatedLosses>
    <dsgx:DeferredTaxAssetsAccumulatedLosses
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_hoxMimfNz0CtS_0-PcWezQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2397000</dsgx:DeferredTaxAssetsAccumulatedLosses>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_q647modSlUerXv9-4iOg3w_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9653000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_JDSMn_NWSUqqzNusSuKczA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9088000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_NK9QLIl5rEun4rw89RNQfg_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9683000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_6z2lphsPtUmMLbd6aJpeWQ_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7680000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_qq2jvTIaMkOO1_mUePP8GQ_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">32475000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_HU5Jr3vtU0O1eV5TVqvWag_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">30901000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_ZGmfYcl0y0yDQ8hAU5BWGA_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53346000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_uPjdL-ehJEqI6UMrsqGthw_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">42423000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_vYG-tSEtokOvkjuKjKTShw_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6990000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_VVcZQB5chEC90njkNcFBjw_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5513000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_ZbGwpTc0pkmUGCI-ssr18w_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60336000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_Lj0y2nHeJ0ec_oY5loHDHQ_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">47936000</us-gaap:DeferredIncomeTaxLiabilities>
    <dsgx:DeferredTaxAssetsNetBeforeValuationAllowance
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_U6QEE32Uo0KD5I_2Le3pzQ_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-27861000</dsgx:DeferredTaxAssetsNetBeforeValuationAllowance>
    <dsgx:DeferredTaxAssetsNetBeforeValuationAllowance
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_bzVDNW4dfkWgzHTmdlVxDQ_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-17035000</dsgx:DeferredTaxAssetsNetBeforeValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_LVi8y6tkVUeGbI0m8aHD5g_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2464000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_aQOE8gD-FUqiMg7YibBnCA_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1969000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <dsgx:DeferredTaxAssetsLiabilitiesNet1
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_42xXf0QwMEOSRFeo-_qn8Q_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-30325000</dsgx:DeferredTaxAssetsLiabilitiesNet1>
    <dsgx:DeferredTaxAssetsLiabilitiesNet1
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_1kEXrG-jU06H_d94reGRQA_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-19004000</dsgx:DeferredTaxAssetsLiabilitiesNet1>
    <us-gaap:UndistributedEarningsOfForeignSubsidiaries
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_01Rmv84R40iu2NPwu3v2pw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1305000000.0</us-gaap:UndistributedEarningsOfForeignSubsidiaries>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_7O2izuPz8EylL8pDVmVhpA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income before income taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 133,728&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Combined basic Canadian statutory rates&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;%&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;%&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense based on the above rates&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 50,783&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40,055&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,438&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase (decrease) in income taxes resulting from:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Permanent differences&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,490&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 590&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of differences between Canadian and foreign tax rates&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (2,042)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,293)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,859)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of rate changes on current year timing differences&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (424)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (48)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (219)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Change in estimates relating to prior periods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,888)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (972)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase (decrease) in accruals for uncertain tax positions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (544)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (117)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,181)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Valuation allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 564&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 263&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (155)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Research tax credits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (2,230)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,488)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (734)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other, including foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 697&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 637&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 584&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_RqdRNMxCJ0eLZuLmHwaRvg_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">191633000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_PWWxZ052N0eQhKZDtyAx5g_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">151152000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_pL_mngafaUmn5_ioNFrk8A_3_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">133728000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="3"
      id="Tc_YPexUFAkuU-0CXBld7Jx9Q_5_2"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="3"
      id="Tc_QV5zSOrCBUuwf6f_JDzJeA_5_4"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="3"
      id="Tc_0jxm02CeFUiINHDohJmcdw_5_6"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_8GPuhwFiJEuWfLCma1g6jQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">50783000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_sZ14UqrXBEGZtg_HUbk0Ew_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">40055000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_xTm2R4tA3kKaVNe57bd0Tw_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35438000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_k_YXLtpIXUeZ_3vAoFYV8Q_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1490000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_l0uM_04UJ0-_Ya6DbVn52g_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">124000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_lZMq-Wq0Q0-kYRSwZTdYMg_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">590000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_O9ptw9i4_U2seHQ8nVStgA_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-2042000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_lnAf6icV0Em3oTD_V3R2eA_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1293000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_IbKl7wWBtESN3nl4dEagtg_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1859000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_-CODvusPuE2qsXo3-mDYNg_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-424000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
    <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_KTg00Klw-Uq_k7FTHi1qyA_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-48000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
    <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_JQR0_S0H6UWLe-q7kOQH9A_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-219000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_HgmnUnIry0-SGnIcAPvrgA_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">66000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_vNiypsjnQEKZvN3tLMXq2A_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-2888000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_5dPeQqj4DUGL6e_DoZXrHg_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-972000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_36JGyeNHV0CwpS4YY_molw_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-544000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
    <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_eDBa81NTTEC5G4aOiidPkg_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-117000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
    <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_s_3fTIdm50KrBK6TPRheaw_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-1181000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_Px7-Qz_3y0SZ-1XOx61OBg_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">564000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_yKfQv7WbXEWUa_HhxyLyRw_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">263000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_cNXLp7vEAkGjo2Me2dEhyg_14_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-155000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_rJm3HaEwcEOfr6KKb8-WfQ_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2230000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_X-osMYK1N0ubXqBT4UoSkA_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1488000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_5iNkxtnGFE-O0cqlyjMg2g_15_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">734000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_jwcBo_yJikeUbJGVgdbyzw_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">697000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_KIWtOrV0mEyzt2UpQ6EA9g_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">637000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_OCbUQu95pEqXO1TnG7a5ig_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">584000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_FzW8_cpC6UWr6i2ts2j-tw_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48360000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_S4kPzKBcDkeOiEfkNKz8RA_17_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35245000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_yA2qJILpKEiKcut500Z-Yg_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31492000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_4UTPdhoYgk-y-x2qpMOPkQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;United&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Expiry year&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Canada&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;States&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;EMEA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Asia Pacific&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 59&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 191&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 50&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 188&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 146&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2030&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 138&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 237&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 375&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 310&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 798&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Indefinite&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 532&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,858&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.61%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,256&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,326&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,033&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,615&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_3j4e5-jopUCuwOT7r9w5xQ"
      decimals="-3"
      id="Tc_mL125LZc7UO3v491S6by7w_3_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">59000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_cF3lCKZeh0uLtkgqRwexGA"
      decimals="-3"
      id="Tc_AhH7fHdjokOxT6jhPHMGKg_3_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">59000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_UNlyxZM3hk6ZRUuIXDvwvA"
      decimals="-3"
      id="Tc_q-4CFSUkE0aMW9RgYxzoWA_4_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">191000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2027Member_sr0Fc9u8EU24M6v4sHahyw"
      decimals="-3"
      id="Tc_4D7asjfBJkuEOaMh_yTqvQ_4_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">191000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_1xVhbZdd-EuD2JQisUWomQ"
      decimals="-3"
      id="Tc_6O5Ud1b-vUa_Qp9REAyx6g_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">138000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_0Df-t5-gekqr2k71X68bpg"
      decimals="-3"
      id="Tc_JRDC5VffIUaVeP_8mUMuHA_5_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">50000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2028Member_tBzmlWb46kiWfyP_tsdHjg"
      decimals="-3"
      id="Tc_CnN40YrBb021VKxOb5f6lw_5_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">188000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_9pnCE8-9X0uPmySAJcQiNQ"
      decimals="-3"
      id="Tc_N7FGn06Kw0W2nGQiHngTxA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">138000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_7AMjFWKDF0KMgk17-A0t2w"
      decimals="-3"
      id="Tc_Sgm-jmUBqU21UhhUGDEXHQ_6_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2029Member_MK1pRYY_5keAuo7akd8z9A"
      decimals="-3"
      id="Tc_-YFlNikqGEaXw4DqBjj_nA_6_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">146000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_P_VnrN2A-EmTzT6Tr3ThKA"
      decimals="-3"
      id="Tc_ioSZRBY30kamIc9GsqaVqQ_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">138000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member__5l7fqnKr06DiZap5gGcig"
      decimals="-3"
      id="Tc_KWWHlGujj0-JnUoMOe0I_g_7_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">237000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_TaxYear2030Member_6rjg4_8y80q_DLW7EVJv_g"
      decimals="-3"
      id="Tc_y6ak83EeHUWD7C62Dmw-IA_7_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">375000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_mFekHua1bkKwcC7YUJkJuw"
      decimals="-3"
      id="Tc_PJ7ziNR5zk2JOA3Xoe4rMA_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">310000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_0irSxaP4W0SIphSD7wckcg"
      decimals="-3"
      id="Tc_ybFgRfwrvkKVoVvne39bOw_8_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">488000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_AGeTVpKfGE2AQyrdfYv87Q"
      decimals="-3"
      id="Tc_L8nsy-PueE638QT5gBkazg_8_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">798000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_WSVHR6MASU2bPA41CrYHCA"
      decimals="-3"
      id="Tc_ZcLTSOBmC0WXveftfr6JTA_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">532000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_l745JJ4S3Eu-LLoh2TtJXw"
      decimals="-3"
      id="Tc_YaQPxe39GUqSnBWPOMQVWA_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9326000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_TaxPeriodAxis_dsgx_IndefiniteYearMember_vR-PnRx9tUuPeLesgK-KnQ"
      decimals="-3"
      id="Tc_0276xe0kUUGo7EJPiabPYw_9_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9858000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_ik1qFM2Dl0-3WPTCDAQ6mA"
      decimals="-3"
      id="Tc_H4GNHN5wYE-KP8fz13JZPQ_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1256000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_zaSzvHyXY0WrY-J15_xwuw"
      decimals="-3"
      id="Tc_rhvuFGqCuUSMeVNSmPoMTg_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9326000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_1gxzHRDtdU6rNmfJ39KoFw"
      decimals="-3"
      id="Tc_LplpWHQ4B0m7htH-jkz1rA_10_8"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1033000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_z2AqaXPxi0uHYC4y-6Uqiw_10_10"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11615000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_-l4zEjTftkKTvUaUyypJTg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liability, beginning of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,153&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,120&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Gross increases &#x2013; current period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,476&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,946&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Lapsing due to statutes of limitations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (2,098)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,913)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liability, end of year&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,531&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,153&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_wI3A8M-qlkG4vZT0K_I5lQ_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6153000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_6L9B5_ev0EC1qbtwAsIAJw_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6120000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_OYZ_B1K0oUOTF5NzHpuuVA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1476000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_kAQppQxsAUWpl9dPh5bLZA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3946000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_6Hx_xSmjmk2PbDZzZfyK-w_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2098000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_OsqQ4pFEjE-UNO1mlzFYgw_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3913000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_20Zgz6b2ZUyBSWwuZr0QjQ_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5531000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_Yo4Ltn3Pm0G-l6l_MDAj2A_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6153000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Narr_7CrZtn0Md0KE4kL0zlcApw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5500000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_iUv8BG88-kGII-Ziaf-QSQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5500000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_QeLfzKCbpE-S40OlCvJHrQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">100000</us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_fYlOrQd97EWWa9dnREblrw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;19&#160;&#x2013; Contract Balances, Performance Obligations and Contract Costs&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Revenue&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the deferred revenue balance as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Deferred&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Revenue&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 69,399&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recognition of previously deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (56,102)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferral of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 72,483&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases from business combinations, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 85,977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recognition of previously deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (68,389)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferral of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 86,328&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases from business combinations, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,195&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (903)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 105,208&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 104,230&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 978&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance Obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of January 31, 2025, approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$528.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;80%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of these remaining performance obligations over the next &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;24&#160;months&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; with the balance recognized thereafter.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Contract Assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the contract assets balance as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,222&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Transfers to trade receivables from contract assets &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,291)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (6)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Transfers to trade receivables from contract assets &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,585)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,008&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (31)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,421&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;"&gt;Contract Costs&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Capitalized contract costs net of accumulated amortization is &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$19.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2025 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$18.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January 31, 2024). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates.&lt;/span&gt; &lt;span style="font-family:'Verdana';"&gt;The total contract cost amortization included in sales and marketing expenses was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$5.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the years ended January 31, 2025, 2024 and 2023, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Group_17ZyDhFFQUe3KUj5ceshBA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Deferred&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Revenue&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 69,399&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recognition of previously deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (56,102)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferral of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 72,483&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases from business combinations, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 82&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 85,977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recognition of previously deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (68,389)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferral of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 86,328&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases from business combinations, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,195&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (903)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 105,208&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 104,230&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 978&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,222&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Transfers to trade receivables from contract assets &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,291)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (6)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Transfers to trade receivables from contract assets &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,585)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,008&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (31)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,421&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_F5gsCUwGAU2mVkPs6vbaVQ_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">69399000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_C9CdCG4e0Umtfu2s_5_WiA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-56102000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_M5UzP4qXn0e5kkFhcwu4TA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">72483000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_4-j-hkClD024uZyPMGay7A_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_z87lQfo3oEuZtyh5nFWPzw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">82000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_pnasnCKYe0CKXQZElckmIA_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">85977000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_4QkeyjoZJ0un0oHQDNLc-w_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">68389000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_8RSPlC3DIECpXramYXSF-A_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">86328000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_UlvzOEz8vUig1uON7AJ0Mg_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2195000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_BdasOCIqx0WJSCGWa9M0nQ_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-903000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_2XzCpEex2EWW_tKSZoCP6Q_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">105208000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_QoHgY-OVn0elNSN3jNiHdQ_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">104230000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_1gnH2nCmFEKOQO021mHP1Q_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">978000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_XrCPpU6mYke7tCdzr9XLsg"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">528300000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="2"
      id="Narr_rb6gGZ4q1kaOAlwk7tVpPA"
      unitRef="Unit_Standard_pure_ehCjRzWm3kGVDRcjbDHw-w">0.80</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="As_Of_1_31_2025_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20250131_eO2sMHH-bE2AK25_xCq_Bg"
      id="Narr_YUDX_QfdI0S9KFkIOqRiYg">P24M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2023_3WR_WLwXrUq2-7vGuvWdOA"
      decimals="-3"
      id="Tc_1a1FjDVNpEy4D0nI41xiqw_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3222000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_I4NtVuNBu0inC9vWAQ4mZg_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1291000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForRevenue
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_K6G128ZzHk66JcmsC1QSWA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1104000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForRevenue>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_Qr7nGJswdUit7xyIlMQAxQ_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-6000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_7LwcJhTcj06x7d3C8n_15w_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3029000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_5jWFTt8lsEq_cGWCOb-JSg_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1585000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForRevenue
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_QC3RBGAtZkKAArRjnm4Xfw_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6008000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForRevenue>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_GL5OboI1TUuqJA2aPN5yHw_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-31000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_97GGfnLfsUGlXQmm4KUTiQ_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7421000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:CapitalizedContractCostNet
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-5"
      id="Narr_tjkIcGBthUSVpGovjw7qcw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19000000.0</us-gaap:CapitalizedContractCostNet>
    <us-gaap:CapitalizedContractCostNet
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-5"
      id="Narr_Kk-3glm0T06QBQ0H1FN2xA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">18600000</us-gaap:CapitalizedContractCostNet>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-5"
      id="Narr_DHYf32pnHESwyh7D53rJ5A"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6900000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-5"
      id="Narr_dqxEM9Gx90CIziMNTNGFXQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6600000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-5"
      id="Narr_S_jy6E1hsUWPltW0ppuDXw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5800000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_CMVMGKyT1kyGRYWeaTGdRA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;20&#160;- Other Charges&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.&lt;/span&gt; &lt;span style="font-family:'Verdana';"&gt;Contingent consideration adjustments relate to changes in anticipated acquisition earnout payment accruals primarily as a result of increases or decreases to revenue performance and forecasts. Revenue forecasts are updated on a quarterly basis and the related earnout payment accruals are updated accordingly.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following tables shows the components of other charges as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition-related costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,803&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,697&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,560&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration accretion and adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 707&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,334&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Restructuring plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 956&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,466&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 21,649&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,441&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Fiscal 2024 Restructuring Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the third quarter of fiscal 2024, management approved and began to implement the fiscal 2024 restructuring plan to reduce operating expenses and increase operating margins. To date, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of office closures and workforce reduction charges. As of January 31, 2025, we expect total remaining office closures to be nominal.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the changes in the restructuring provision for the fiscal 2024 restructuring plan:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Workforce&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Office&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Reduction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Closures&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accruals and adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 112&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 178&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash draw downs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (503)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (112)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (615)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-cash draw downs and foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (5)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (5)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;font-weight:bold;"&gt;Fiscal 2025 Restructuring Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the fourth quarter of fiscal 2025, management approved and began to implement the fiscal 2025 restructuring plan to reduce operating expenses and increase operating margins. To date, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of workforce reduction charges. As of January 31, 2025, we expect total remaining workforce reduction costs to be incurred of approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the changes in the restructuring provision for the fiscal 2025 restructuring plan:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Workforce&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Reduction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accruals and adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 778&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 778&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash draw downs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (616)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (616)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 162&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 162&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock>
    <us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_qoihwKai7k-dglNhjR8O6A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition-related costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,803&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,697&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,560&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration accretion and adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 707&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,334&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Restructuring plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 956&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,618&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 77&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,466&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 21,649&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,441&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_PcErdvYlF0-pasX6GfpzYw_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5803000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_KG9cudEe-Ui526fX4-V48w_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">3697000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_l8ORR9731UaVch0NS_rHlw_3_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2560000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_-kzAC8ig-k2Rd5c5cK_RMA_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">707000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_18WAtiMfiUCvm9fbJaOPpQ_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16334000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_F3jhY99BQUSCPXh_h4-bUg_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2804000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_srGFO34GZ0KzpixZssm7dg_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">956000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_esznDJ-z5UqCYLRf3ODdZg_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1618000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_uhgXvOnWVECWnFuyuz2GjQ_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">77000</us-gaap:RestructuringCharges>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_DuxQ_ddHOkCT_QuJMPK4rA_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7466000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_Uke92Mj9a0-yeuw6rUSKeg_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">21649000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_713I-nnVrUmXdPDiR0mZmw_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5441000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:RestructuringAndRelatedCostCostIncurredToDate1
      contextRef="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7gQhquhRE0-RMmApKKBsRQ"
      decimals="-5"
      id="Narr_NaH4v4sO20WllBv_7lM6xw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1800000</us-gaap:RestructuringAndRelatedCostCostIncurredToDate1>
    <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g"
      id="Tb_XCLKGKxFdUKu2qB5VfTDIg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Workforce&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Office&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Reduction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Closures&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accruals and adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 112&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 178&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash draw downs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (503)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (112)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (615)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-cash draw downs and foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (5)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (5)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
    <us-gaap:RestructuringReserve
      contextRef="As_Of_1_31_2024_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_I7EM2AKm_U-5rl0tPVWxow"
      decimals="-3"
      id="Tc_pCuYXu7A9kqPMriy_GKCpw_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">442000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="As_Of_1_31_2024_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_7kb5wGJr-U2vLu3NNbphCg"
      decimals="-3"
      id="Tc_rp1htBoXZU6PWrL-EddmwQ_3_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">442000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w"
      decimals="-3"
      id="Tc_dNvw5-S8CEqmDW7RTKqEcg_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">66000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_jsfYlX7eF0GpmFoQQelk0Q"
      decimals="-3"
      id="Tc_yZsufAUsgkmxeX5oBu4yzA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">112000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g"
      decimals="-3"
      id="Tc_dECouXnexEa17cAFYhPSpQ_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">178000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w"
      decimals="-3"
      id="Tc_d3vY5tiq1k2x9dMJ9snqUw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">503000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_jsfYlX7eF0GpmFoQQelk0Q"
      decimals="-3"
      id="Tc_ErEva9frUU2uHEqcb0jOPg_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">112000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g"
      decimals="-3"
      id="Tc_jTlxc-_1aUa-mrVK3flK1w_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">615000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_LzgERLR7oUS8E-XaUKX64w"
      decimals="-3"
      id="Tc_aorXJd4yh0yAQb8i2Beifg_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2024RestructuringPlanMember_Mz6lE1rWIEu7VSbZKdOG6g"
      decimals="-3"
      id="Tc_Stj6DFo7RU27Hm8FannHeA_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringAndRelatedCostCostIncurredToDate1
      contextRef="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_AIPkZ424DU6umDEWWArldg"
      decimals="-5"
      id="Narr_iZNEmvv6-k-Im4cP1okGmA"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">800000</us-gaap:RestructuringAndRelatedCostCostIncurredToDate1>
    <us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MinimumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_8ySeS4DWS0qjpKMDGIQ7TQ"
      decimals="-5"
      id="Narr_3dxePtfCtEWqW8uv-dWRsw"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">100000</us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1>
    <us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1
      contextRef="As_Of_1_31_2025_srt_RangeAxis_srt_MaximumMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_16NvNRUppkGMDdkLb8VATA"
      decimals="-5"
      id="Narr_gME_o72Cm0m0vlaRWNjYjQ"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">200000</us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1>
    <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q"
      id="Tb_uBLTfFrc-EiNvYTzMxGpzQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Workforce&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Reduction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accruals and adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 778&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 778&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash draw downs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (616)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (616)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 162&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 162&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_wmj07YaPfEmX4sPnv_udag"
      decimals="-3"
      id="Tc_f0tCr0GWvk6VuEcJCCXyxQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">778000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q"
      decimals="-3"
      id="Tc_675wNfcy90KP-W0w8SXzeA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">778000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_wmj07YaPfEmX4sPnv_udag"
      decimals="-3"
      id="Tc_Xur4dWJWAEOsH5zrYXoj0Q_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">616000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_-KEewzkvzEGhT95pI9HB8Q"
      decimals="-3"
      id="Tc_A67MGMx_BkuBjpq05F0xvw_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">616000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserve
      contextRef="As_Of_1_31_2025_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_JtoQqghEdUOfZGuRuBrLAA"
      decimals="-3"
      id="Tc_sBQkaRGhz0SaDWf7gb1c_g_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">162000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="As_Of_1_31_2025_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2025RestructuringPlanMember_AIPkZ424DU6umDEWWArldg"
      decimals="-3"
      id="Tc_PuDXi1DCoku75cUKENVl9A_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">162000</us-gaap:RestructuringReserve>
    <us-gaap:CashFlowSupplementalDisclosuresTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_o4fQU0o3hkyxcM4Qik26bw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;21&#160;&#x2013; Supplemental Cash Flow Information&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following tables present cash provided by (used in) operating activities related to changes in assets and liabilities:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,299&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (6,566)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,802)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (683)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,589&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (14,712)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (8,039)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5,560)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,868&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,180&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (620)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (9,017)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,270&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,433&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income taxes payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 956&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (446)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 753&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (349)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 325&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (95)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,825&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 15,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,142&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Changes in operating assets and liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (13,932)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 15,182&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 7,793&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
    <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_NFr04bc6V0OZt-KzB6Nd9w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,299&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (6,566)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,802)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (683)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,589&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (14,712)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (8,039)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (5,560)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,868&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,180&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (620)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (9,017)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,270&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,433&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income taxes payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 956&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (446)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 753&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (349)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 325&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (95)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,825&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 15,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,142&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Changes in operating assets and liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (13,932)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 15,182&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 7,793&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_oh-yRG0bO0m-dwTSAvKzMg_3_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-3299000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_N0gZ-sRDJ0uyfKemNdXcyg_3_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6566000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Nip2ZY0jp0CBUD7SQHPx3A_3_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-151000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_60A43rjP-U-IsYBgFwexzw_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1802000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_B01sTPDvcU66_JBoTPxNSA_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">683000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_qteFdbqoCUG1J4tlnAqhpQ_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-2589000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_gxctoOTRjUC-kn-VIlhAgA_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">14712000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_OVLvlHb9JUCvv-1dbJzRrQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8039000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_AjaxcMICS0Kv_eboIQAK_Q_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5560000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_74ufW6e1KkOWA4jXE_6Jlw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1868000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_MphI5nqzk0euNcIMyTL3Hg_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6180000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_OqxQSlY3Q0WorQJaWa9GGQ_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-620000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_YB--I3tMb0uVpOGBvOON0g_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-9017000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_XEuwe7GTO0mDz_adf44ixg_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9270000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Xw8MASTSF0iBI4BrNs0hRQ_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">2433000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_uG3M_CUYHkyaZFcqx3rX3A_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">956000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_oMdhqDJlpUmoG8J_wWV7Nw_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-446000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_4j4gvj-Y8Em33B8lLrikIQ_8_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">753000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_eFCEiwnOvEScQTFimM3www_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-349000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_G8M5Kjf0hkCE-6sfMl-kpw_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">325000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_WxQicZG4KUmdi9zMM1iXtg_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-95000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_iZLtFUpGukOU6HKYnyNecg_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5825000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_S7cCm_3nA0CcSrInGrbJdA_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">15141000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_rONdzNVb9kGPE-WrMY7Xbw_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8142000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_dXsvuKbJ9EGekUS_AY_ABA_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13932000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_Kq1TS6denUmTht-JjGxZsA_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-15182000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_gjZtftYZx0SlGsXh1_JprQ_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">-7793000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_ywYrV-PUpE6thWI4IBC8rg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;22&#160;- Segmented Information&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;one&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; reportable business segment providing logistics technology solutions.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The Company has determined that it has a chief operating decision maker (&#x201c;CODM&#x201d;) comprised of the Company&#x2019;s chief executive officer and president &amp;amp; chief operating officer. The CODM assesses performance for the Company and makes operating decisions based on consolidated net income and Adjusted EBITDA. The term &#x201c;Adjusted EBITDA&#x201d; refers to a financial measure that we define as earnings before certain charges that management considers to be non-operating expenses and which consist of interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges, acquisition-related expenses, and contingent consideration incurred due to better-than-expected performance from acquisitions). Management considers these non-operating expenses to be outside the scope of Descartes&#x2019; ongoing operations and the related expenses are not used by management to measure operations. Accordingly, these expenses are excluded from Adjusted EBITDA, which we reference to both measure our operations and as a basis of comparison of our operations from period-to-period. Adjusted EBITDA is a non-GAAP financial measure and may not be comparable to similarly titled measures reported by other companies. The CODM uses net income and adjusted EBITDA to assess overall performance of the Company and to evaluate whether to reinvest profits or invest in acquisitions. Asset information is not regularly provided to the CODM and as such the CODM does not make decisions based on assets. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table provides a breakdown of the measures of profit regularly provided to the CODM:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Revenues&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 651,000&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 572,931&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 486,014&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Less:&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Headcount-related costs, including stock compensation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 249,887&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 226,897&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 195,261&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost of revenues and network charges (exclusive of other items presented separately)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 67,212&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33,996&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;SaaS software and maintenance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 23,066&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,908&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,476&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other segment items&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 54,723&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 63,505&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 44,445&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depreciation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,589&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,474&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Amortization of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 69,399&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,501&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 469,876&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 430,082&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 355,580&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income from operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 181,124&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,849&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 130,434&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Interest expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,004)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,363)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,167)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Investment and other income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,513&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,666&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,461&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income before taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 133,728&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Net income&lt;/b&gt;&lt;span style="font-family:'Verdana';"&gt;, as reported on Consolidated Statements of Operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 143,273&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115,907&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102,236&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Adjustments to reconcile to Adjusted EBITDA:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Interest expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,004&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Investment and other income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (11,513)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (9,666)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (4,461)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depreciation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,589&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,474&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Amortization of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 69,399&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,501&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Stock-based compensation and related taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 21,098&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,005&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,920&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other charges (Note 20)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,466&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 21,649&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,441&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Adjusted EBITDA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 284,676&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 247,478&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 215,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other segment items includes travel expenses, reseller fees, contractors, corporate cars, bad debt expense, occupancy, insurance, marketing, employee administrative costs, professional fees, board of director fees, foreign exchange gains and losses, and other expenses.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 439,103&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 382,176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 307,102&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 153,004&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 137,164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 126,942&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39,254&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,422&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 34,547&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 19,639&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 18,169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,423&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 651,000&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 572,931&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 486,014&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,715&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,385&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 590,243&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 520,930&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 435,734&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Professional services and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 55,042&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 46,675&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,895&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 651,000&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 572,931&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 486,014&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total long-lived assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 246,048&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 178,843&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 49,737&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,298&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 31,007&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 47,072&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,959&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,386&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 333,751&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 262,599&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="INF"
      id="Narr_-UGGmQRemE-UYKYPCVg7fA"
      unitRef="Unit_Standard_segment_2f_V29RRlkaFYgf_PufsGw">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_TPI4-IGsgUKqcVBeqdU5EQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="color:#0f4761;font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Revenues&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 651,000&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 572,931&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 486,014&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Less:&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Headcount-related costs, including stock compensation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 249,887&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 226,897&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 195,261&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost of revenues and network charges (exclusive of other items presented separately)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 67,212&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 33,996&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;SaaS software and maintenance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 23,066&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,908&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 16,476&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other segment items&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 54,723&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 63,505&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 44,445&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depreciation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,589&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,474&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Amortization of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 69,399&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,501&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 469,876&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 430,082&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 355,580&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income from operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 181,124&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 142,849&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 130,434&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Interest expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,004)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,363)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,167)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Investment and other income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,513&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,666&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,461&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income before taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 191,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 151,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 133,728&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Net income&lt;/b&gt;&lt;span style="font-family:'Verdana';"&gt;, as reported on Consolidated Statements of Operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 143,273&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 115,907&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102,236&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Adjustments to reconcile to Adjusted EBITDA:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Interest expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,004&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Investment and other income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (11,513)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (9,666)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (4,461)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income tax expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,360&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,492&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Depreciation expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,589&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,474&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,225&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Amortization of intangible assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 69,399&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,501&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 60,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Stock-based compensation and related taxes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 21,098&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,005&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,920&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other charges (Note 20)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,466&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 21,649&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,441&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Adjusted EBITDA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 284,676&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 247,478&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 215,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_2fKhrcu6pkWPJ6hBts-hWQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">651000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_WJS1VFYqgE6YYKU5kHzGnw_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">572931000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_VD2IyXFDHE2iICl3ZEJmLg_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">486014000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:LaborAndRelatedExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_yKzVKcmp5Eybb5SbmDbUpA_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">249887000</us-gaap:LaborAndRelatedExpense>
    <us-gaap:LaborAndRelatedExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_eCKwdqqHT0-XX-Del52Tnw_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">226897000</us-gaap:LaborAndRelatedExpense>
    <us-gaap:LaborAndRelatedExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_WkFpxGTqB0-OIPGVlu6lTQ_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">195261000</us-gaap:LaborAndRelatedExpense>
    <dsgx:CostOfRevenuesAndNetworkCharges
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_ae3-8cRr80O3WzBPKm9Gdw_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">67212000</dsgx:CostOfRevenuesAndNetworkCharges>
    <dsgx:CostOfRevenuesAndNetworkCharges
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_OWr5ty-uI02lZz0pW_bNMA_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">53797000</dsgx:CostOfRevenuesAndNetworkCharges>
    <dsgx:CostOfRevenuesAndNetworkCharges
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_bk8dQ9pJeE-al1EPVszmnQ_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">33996000</dsgx:CostOfRevenuesAndNetworkCharges>
    <us-gaap:CostMaintenance
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_15Jg7M6Vv0KD50QYee0taw_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">23066000</us-gaap:CostMaintenance>
    <us-gaap:CostMaintenance
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_nJk5eTpeEUO-p5p-QnoZ7g_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19908000</us-gaap:CostMaintenance>
    <us-gaap:CostMaintenance
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_mEqzUT3KUkeunlWLs9pMBw_8_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">16476000</us-gaap:CostMaintenance>
    <dsgx:SegmentReportingOtherSegmentItemAmount
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_jK2seXgD40ewdKvXMrOofA_9_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">54723000</dsgx:SegmentReportingOtherSegmentItemAmount>
    <dsgx:SegmentReportingOtherSegmentItemAmount
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_S6y1J0q5cU6y7AiZjRocNQ_9_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">63505000</dsgx:SegmentReportingOtherSegmentItemAmount>
    <dsgx:SegmentReportingOtherSegmentItemAmount
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_zlwUUCNF9EK3Z4fTPnIs9w_9_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">44445000</dsgx:SegmentReportingOtherSegmentItemAmount>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_zZISrXLU-k-E-dZKRM6BeQ_10_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5589000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_wEMvU-_VvUiz9U1WBYAN1g_10_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5474000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_iy3QbggsEEuPm9gb6HEQHA_10_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5225000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_L_UGXzNaOESHNEQpLzxOag_11_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">69399000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_gJUvTr_6WkiriyT3uzcaSQ_11_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60501000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_d3FXfeBrx0qcFNrKFOZfRw_11_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60177000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:CostsAndExpenses
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_IdsV8vGl-UOnhqsng4Cd3Q_12_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">469876000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_Qm0FU6OjS0So9EQIpAUjQA_12_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">430082000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_RgFWycmS0EmdN649Gd2PUw_12_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">355580000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_cpn8Dd0A30qUh6phsX-JPg_13_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">181124000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_1txnd90IWUuTK8Gsp_Z2dg_13_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">142849000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_umCjOjOgg0WGoTLzbn4gsQ_13_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">130434000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_G0Ju5iy9-EWenVU4VMq-YA_14_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1004000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_HgaaeEfaZEm4RMjIByvcuA_14_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1363000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_UkdJwGc-aUi0G7iiOYs8Jg_14_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1167000</us-gaap:InterestExpense>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_n3okGgdfBUmZp5ROepZNcg_15_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11513000</dsgx:InvestmentAndOtherIncome>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_jT7sZvZ3_UG7hQDebtPIMw_15_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9666000</dsgx:InvestmentAndOtherIncome>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_g49ykhfGEkmNp09QJUjffQ_15_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4461000</dsgx:InvestmentAndOtherIncome>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_36NPLAykEUeuPChFYP4s5w_16_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">191633000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_Hd575-OB7EKg9TXArWWyuw_16_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">151152000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_QLGHY6XCrUy0UhnmlQqg_A_16_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">133728000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_1SWUTJd5H0K1t5tGeMGZlA_17_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48360000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_WoA9P0uki0229r4bHx_UsA_17_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35245000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_GuuRDMhiykauY4Fr4ZlzSQ_17_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31492000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2024_To_1_31_2025_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_12IyTXUEs0awWAkSqybdyg"
      decimals="-3"
      id="Tc_jsza5fXCtE2JEm6IOcskJw_18_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">143273000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2023_To_1_31_2024_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_c0mvpmm9JEOUWnKjEKkWtw"
      decimals="-3"
      id="Tc_9_LW8S6wTUa0xc1MstroKw_18_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">115907000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_1_31_2023_us-gaap_StatementBusinessSegmentsAxis_dsgx_SingleReportableSegmentMember_vth4F5CUv0CHZE7Nro7UFQ"
      decimals="-3"
      id="Tc_9mfquMGr10qFH28Ic5NKYA_18_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">102236000</us-gaap:NetIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_4qgxm4DkdEaj_S2LActtyQ_21_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1004000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_ZTmdNcqjsUaSaoZkvimQXQ_21_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1363000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_U04ubzBA40anY9pyBF9gOg_21_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">1167000</us-gaap:InterestExpense>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_Gz6qWzSDekCl5Sv_07TATw_22_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">11513000</dsgx:InvestmentAndOtherIncome>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_LJLB15MMVU2ZfYzy_oof6w_22_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">9666000</dsgx:InvestmentAndOtherIncome>
    <dsgx:InvestmentAndOtherIncome
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_DKJq1AXUGEaoiNVux4HxcA_22_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">4461000</dsgx:InvestmentAndOtherIncome>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_XlPyJC7exUagBlZ815heVg_23_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">48360000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_liKQsKU0FE6gKWDkNoObqQ_23_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35245000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_G31H0Po6m0ejeomRwsjpFA_23_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31492000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_SEwltcGYkU-MCN24EXmKZQ_24_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5589000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_Xr7UccggHECqFkRKjCuadQ_24_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5474000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_Nr3pSGm740mJh19-ft5Rgg_24_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5225000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_4Covfopmgk2QWLhu_qJDfg_25_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">69399000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_bhyoXB4Ff0K6FEJejwiL3Q_25_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60501000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_FU4JijCKyEied4zGCZF-JQ_25_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">60177000</us-gaap:AmortizationOfIntangibleAssets>
    <dsgx:ShareBasedCompensationExpenseAndRelatedTaxes
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_E_bXlZCphkGrzo0-hKiIGg_26_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">21098000</dsgx:ShareBasedCompensationExpenseAndRelatedTaxes>
    <dsgx:ShareBasedCompensationExpenseAndRelatedTaxes
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_WoatcotN906OsJyuLISDIw_26_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">17005000</dsgx:ShareBasedCompensationExpenseAndRelatedTaxes>
    <dsgx:ShareBasedCompensationExpenseAndRelatedTaxes
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_kWkBraGpQ0uk4i0Qso_Q0g_26_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">13920000</dsgx:ShareBasedCompensationExpenseAndRelatedTaxes>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_oYprBhud3E2oTR5WD6ab2w_27_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">7466000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_xSC1dUD8O02etEhGY7hE6A_27_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">21649000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_bDAf1fbkSUW-wuOJZszdLQ_27_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5441000</us-gaap:OtherCostAndExpenseOperating>
    <dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_GhWgvvt7UUSwmL18k07GaA_28_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">284676000</dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization>
    <dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_viyo-Ut_QkiPOwROCVFIsA_28_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">247478000</dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization>
    <dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_hLpsnXx_uEeg4lgMLIRbKA_28_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">215197000</dsgx:AdjustedEarningsBeforeInterestTaxDepreciationAndAmortization>
    <us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_DMdK8DeYsU2RVipADhdXaw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 439,103&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 382,176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 307,102&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 153,004&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 137,164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 126,942&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39,254&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,422&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 34,547&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 19,639&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 18,169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,423&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 651,000&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 572,931&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 486,014&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_US_nxGVLzjITEuUmjVwxFftrw"
      decimals="-3"
      id="Tc_m29dQGswZkut1ar-j_S28Q_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">439103000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_US_H0t6W-dJt0Gkyzt7yhaFyg"
      decimals="-3"
      id="Tc_W4033RCysE2n2-kZP2kF-w_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">382176000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_US_GvGGbDDi8kqORlR0hgi5-w"
      decimals="-3"
      id="Tc_ir-oyF62Ck6n2SnvI_bMvw_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">307102000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_29vGExNb-0Gh_6J9FwEffA"
      decimals="-3"
      id="Tc_c8yf-1g4bkqEG64R9hZLdQ_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">153004000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_8JOnCORSmkWFWsneZm90gQ"
      decimals="-3"
      id="Tc_Eh6gjDT0e0eHBuSHbzUcUQ_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">137164000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_us-gaap_EMEAMember_fCee2E7iGEGcN50kEsY-aw"
      decimals="-3"
      id="Tc__t-JWZQxC0y8GJlCnCrAkA_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">126942000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_country_CA_-vHgzPWnkk-KRqWMeD-Bxg"
      decimals="-3"
      id="Tc_cG97xcdrmke9-IKrbI3CUg_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">39254000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_country_CA_4f0jfXCPPkmLxV9dPq_UEw"
      decimals="-3"
      id="Tc_B-h774LR1UOGAM0PHKnwoA_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">35422000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_CA_S4wbI54qV0Ks31bg1nfgYw"
      decimals="-3"
      id="Tc_GqLICxCjk0GEUKqJXdh3fQ_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">34547000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_cXgD9j1dYkCWJaVliFBFvg"
      decimals="-3"
      id="Tc_wXwBX0UncEKG_b1wiKSnXA_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">19639000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PpH20IfC6UaKAtZfvmsVEg"
      decimals="-3"
      id="Tc_RRQu9qQiyUm4XjfYC02n6Q_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">18169000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_srt_AsiaPacificMember_ZSDkfy0DGkK4vooiBjK3bA"
      decimals="-3"
      id="Tc_QhfwnZEIl06TyoT3V7gpxA_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">17423000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_AQFV5Fh9bk6PXN9VxXZGgg_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">651000000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_hZJOxbUftkeXXef03HBcxg_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">572931000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_r13Dd5og3kqitylWsSN5YA_8_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">486014000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_k-w_AXZ5hkSo5vIEvJpvXQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January 31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"&gt;&lt;i style="font-family:'Verdana';font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,715&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,385&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 590,243&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 520,930&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 435,734&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Professional services and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 55,042&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 46,675&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,895&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 651,000&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 572,931&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 486,014&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_LicenseMember_pl2slgTqPEScSNB3qniZ0A"
      decimals="-3"
      id="Tc_2eAx9qj_sEa5uV8ouSSYjQ_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5715000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_LicenseMember_CdETb7LgaU6RNK3pdOKNlA"
      decimals="-3"
      id="Tc_Qui-jRF6QEWcEVzgLvt5Qw_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">5326000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_LicenseMember_4vkmpzQ0IE2cNYszp9t6pg"
      decimals="-3"
      id="Tc_yH9GldV7jUGXOAfh40GkLQ_4_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">8385000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_us-gaap_ServiceMember_TQjDDrEHpES7HgWwuIv6fg"
      decimals="-3"
      id="Tc_PcurPcb4gECuYs8b-8eDpg_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">590243000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_us-gaap_ServiceMember_PPFpMMaUVUOeYascn3YgvQ"
      decimals="-3"
      id="Tc_re_aYvcrZUegfEopb2WnGA_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">520930000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_ServiceMember_W6-OgRB8eUyg3o2ollLxKQ"
      decimals="-3"
      id="Tc_PzgO-eGmyU6ePuh5MCQe3Q_5_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">435734000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6vyhTEO2dEuYoOglC9AKmA"
      decimals="-3"
      id="Tc_UuNeYBuHXE24w0b1yT2vQw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">55042000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_nkQ8q5WqQ0OUccEnkkdAaQ"
      decimals="-3"
      id="Tc_fERnMU_DaEqMNFkGNIQC-A_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">46675000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_kRe4BfuYO0GeGsb9iXraNA"
      decimals="-3"
      id="Tc_IKg_dhBrQkC0_1dzd_c10A_6_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">41895000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      decimals="-3"
      id="Tc_lhP78R81nEeLix6ym0SYbQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">651000000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2023_To_1_31_2024_pk9Yxy2U3kyQ85nzPlqHpw"
      decimals="-3"
      id="Tc_fwvg6XHU2EKsCYhWSm5W4Q_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">572931000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_1_31_2023_0C8166GY9USzFfTHKhFEcA"
      decimals="-3"
      id="Tc_3LiVasTSLEm0350CLYrZng_7_6"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">486014000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock
      contextRef="Duration_2_1_2024_To_1_31_2025_hRckO8z2G0-KE5axWBfLYg"
      id="Tb_5XYR2lTeD0GKuxn0ar-vjg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;January&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total long-lived assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 246,048&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 178,843&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 49,737&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,298&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 31,007&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 47,072&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,959&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,386&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.54%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 333,751&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 262,599&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_US_lwCTJQu9yECv4HwkdAswOw"
      decimals="-3"
      id="Tc_04EqCOG_LUWXTbfpqF-vyg_4_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">246048000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_US_CGnWX7zQzkCUwngHM5p4HQ"
      decimals="-3"
      id="Tc_378_gGG8hkmLv4OJlxkV9Q_4_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">178843000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_us-gaap_EMEAMember_roul4JoGLUaLPxzX8GLlKg"
      decimals="-3"
      id="Tc_dttEGUlvmEmwF1MqK4M4Aw_5_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">49737000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_us-gaap_EMEAMember_-wEBXuXve0aCbivTb5ScQA"
      decimals="-3"
      id="Tc_iR_FgmM4D0ea2Zdptdzw2g_5_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">26298000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_country_CA_BRScwaLfe0iYy_ZIBdthfw"
      decimals="-3"
      id="Tc_Y1LSc2x_-UmdHiRg6KBzFw_6_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">31007000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_country_CA_ILjGiaSF3kCi_5BYAjhR-Q"
      decimals="-3"
      id="Tc_zsY0LTcXAkWJyowNba9jsg_6_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">47072000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2025_srt_StatementGeographicalAxis_srt_AsiaPacificMember_bQtUUlolAU-5Xau3H5f0rg"
      decimals="-3"
      id="Tc_A3317PcgrUOdeK0dqLoGGQ_7_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">6959000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2024_srt_StatementGeographicalAxis_srt_AsiaPacificMember_RJd80nMB2EemQBVx2w-bdQ"
      decimals="-3"
      id="Tc_QyZwbRwbcUqomxdFe8SyGA_7_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">10386000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2025_8HVhEVXGP02_bavAQJt19g"
      decimals="-3"
      id="Tc_Ev5OPcYEI0-V6C26C9iPAw_8_2"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">333751000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2024_OFTox6hgKkG8fYGGKDsy3w"
      decimals="-3"
      id="Tc_UtwoVAyR9EeXfCYIkhTB7w_8_4"
      unitRef="Unit_Standard_USD_yyWGfPV39kmXUectiusD9Q">262599000</us-gaap:NoncurrentAssets>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
